почему конструктор по умолчанию не добавляется компилятором для класса, содержащего постоянные члены данных. см. приведенный ниже код, в котором я объявил постоянный элемент данных «a», и при попытке создать объект для класса «ClassA» он говорит, что нет подходящего конструктора по умолчанию. пожалуйста помоги.
#include "stdafx.h"
#include <iostream>
using namespace std;
class ClassA
{
private:
const int a;
public :
void print()
{
cout << "hello world" << endl;
}
};
int main()
{
ClassA obj;
obj.print();
return 0;
}
a
. - person chris   schedule 23.05.2013a
выполняется с помощью инициализатора по умолчанию, а именноint()
, который будет инициализирован нулем. Да, это (почти) бессмысленно, но есть ли у кого-нибудь ссылка на то, почему это невозможно для конструктора по умолчанию? - person Keith   schedule 23.05.2013a
естьconst
? - person Keith   schedule 23.05.2013const
переменные в строке. - person Ken D   schedule 23.05.2013const
постфактум, так что в этом хорошего, если она не инициализирована для начала? (зная, что чтение неинициализированного значения является поведением undefined) - person Matthieu M.   schedule 23.05.2013a
является неинициализированной памятью; не могли бы мы наложить известную память, используя новую на месте? - person Keith   schedule 24.05.2013