Ответ 1
- Да - конструктор по умолчанию, экземпляр, созданный в стеке
- Нет
- Да - конструктор по умолчанию, экземпляр, созданный в куче
В каком из следующих конструкторов myClass называется?
1. myClass class1;
2. myClass* class1;
3. myClass* class1 = new myClass;
Спасибо большое
В обоих # 1 и # 3, поскольку вы на самом деле делаете экземпляр объекта. В # 2 вы просто объявляете указатель, который не указывает на экземпляр.
Но этот код не будет создавать экземпляр какого-либо объекта, поскольку он не компилируется.;-) Попробуйте следующее:
myClass class1;
myClass* class2;
myClass* class3 = new myClass;
1 и 3, потому что в них вы создаете объект myClass.
Конструктор вызывается в случаях 1 и 3 при создании экземпляра класса. Другой (2) объявляет только указатель.