Рассмотрим следующие классы
class test1
{
private:
int a;
int b;
public:
test1():a(0),b(0){}
};
class test2
{
private:
int a;
int b;
public:
test2()
{
a=0;
b=0;
}
};
Теперь я знаю, что test1() constructor
- это правильный способ инициализировать элементы данных class
, потому что в test2()
мы выполняем назначение, а не инициализацию. Мои вопросы:
- Что может пойти не так, если мы выполняем назначение вместо инициализации?
- Разве компилятор не выполняет внутреннее выполнение в случае конструктора
test1()
? Если нет, то как они инициализируются?