Что такое конструктор по умолчанию? Как инициализируются элементы данных объекта, если класс имеет только неявно определенный конструктор по
умолчанию? Ответы на все эти вопросы я раскрою в этот статье.
Конструктор по умолчанию — это конструктор, который может быть вызван без аргументов
При неявно определенном конструкторе только для статических объектов гарантируется, что все их члены (в том числе и динамические) будут обнулены. Также обнуляются статические свойства классов, но только для первого созданного объекта. Объекты, определенные локально или распределенные динамически, в начальный момент будут содержать случайный набор битов, оставшихся в стеке программы.
class Tester { public: static int n; Tester(void); ~Tester(void); }; //Tester.cpp int Tester::n; //main void main() { Tester a; cout<<a.n; //n=0; return; } class Tester { public: int n; Tester(void); ~Tester(void); }; //main void main() { static Tester a; cout<<a.n; //n=0; return; } class Tester { public: int n; Tester(void); ~Tester(void); }; //main void main() { Tester a; cout<<a.n; //n-случайное число; return; }
Конструктор не создается автоматически. Если конструктор не прописан в методах класса, то при обращении (явно или в функции) к свойствам объекта компилятор выдает сообщение об использовании объекта, который не был инициализирован.
Comments ( 0 )