Какое значение дано данным членам класса по умолчанию в конструкторе c ++? - PullRequest
0 голосов
/ 15 сентября 2018

как и в java, значение по умолчанию, заданное конструктором, равно 0, я где-то слышал, что в c ++ значение по умолчанию не дается конструктором, но затем я создал простую программу и напечатал значения элементов данных, и он напечатал 0 так?

    #include<iostream>
    class testclass
    { int value1;
       int value2;
       public :
       void print(){
       std::cout<<value1<<value2;
       } 
       };
       int  main(){
         testclass t1;
         t1.print();
         return 0 ;
      }

код выше выведите 0 в качестве вывода, так что ...?

1 Ответ

0 голосов
/ 15 сентября 2018

я где-то слышал, что в c ++ значение по умолчанию не дается конструктором, но затем я создал простую программу и напечатал значения элементов данных, и она выдает 0, так что?

Некоторые компиляторы могут это делать, но в соответствии со стандартом использование этих переменных-членов является причиной неопределенного поведения.

Не рассчитывай на них. Убедитесь, что ваши переменные-члены правильно инициализированы.

Используйте

class testclass
{
   int value1 = 0;
   int value2 = 0;

   ...

};

или

class testclass
{
   int value1;
   int value2;

   public:
     testclass() : value1(0), value2(0) {}
   ...

};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...