Как инициализировать по умолчанию локальную переменную примитивного типа в C++? Например, если у ЬурейеЕ:Как по умолчанию инициализировать локальные переменные встроенных типов в C++?
typedef unsigned char boolean;//that's Microsoft RPC runtime typedef
Я хотел бы изменить следующую строку:
boolean variable = 0; //initialize to some value to ensure reproduceable behavior
retrieveValue(&variable); // do actual job
в то, что будет по умолчанию автоматически инициализировать переменную - не нужно назначить определенное значение для него, но вместо этого мне нужно только, чтобы это было intialized к тому же значению каждый раз, когда программа работает - тот же материал, как со списком конструктор инициализатора, где я могу иметь:
struct Struct {
int Value;
Struct() : Value() {}
};
, а Struct::Value
будет инициализирован по умолчанию для одного и того же значения каждый раз, когда экземпляр cinstructed, но я никогда не записываю фактическое значение в коде.
Как я могу получить то же поведение для локальных переменных?
Что вы пытаетесь достичь? Может ли помочь Mabe боксирование примитивной переменной в объекте? – clyfe
@clyfe: Я не хочу иметь фактическое значение в моем коде, так как это не имеет значения. – sharptooth
Я не уверен, что именно вы хотите. Вы хотите автоматически использовать 'T obj;' default-initialize 'obj' даже для встроенных модулей? Это невозможно. Или вам просто нужен способ по умолчанию инициализировать 'obj' независимо от того, какой тип он имеет? Затем, как уже говорят некоторые ответы, 'T obj = T();' это путь. – sbi