Моего кода, как показано ниже: (Пробовал сделали мой исходный код здесь проще)значения по умолчанию для члена класса в C++
class ExClass {
public:
int check;
ExClass() { }
}
//in main
int main()
{
ExClass *classPtr = new ExClass();
if(classPtr->check == -1)
{
cout<<"check is negative";
}
}
Здесь переменная «проверить» не инициализируется в конструкторе, поэтому он должен принять некоторая стоимость мусора (как я знаю).
Но моя проблема здесь в том, что всегда печать «проверка отрицательна». (Так что «проверить» -1)
Как это происходит каждый раз? Как переменная 'check' равна -1 всегда?
Спасибо за помощь!
'ExClass(): check (0) {}' –
Я действительно не думаю, что вы можете полагаться на 'check' всегда на' -1'. Похож на ошибку, ожидающую своего появления. Просто подумайте, что, скорее всего, значения инициализации для переменных являются компиляторами ** и ** зависимыми от платформы. – JoErNanO
Я думаю, что значение зависит от вашего компилятора. Здесь я использую MinGW-w64 complier, и это случайное число. –