i = I; }
};
class B {
public:
A a;
B(int i) { a = A(i); } //Ошибка
};
Данный код выдает ошибку, что у класса A нет конструктора по умолчанию. А что если я не хочу, что-бы А существовало без заданной переменной внутри объекта, но ее я узнаю только во время создания класса Б? Неужели только так?
class A {
public:
int I;
void setI(int i) { I = i; }
};
class B {
public:
A a;
B(int i) { a = A(); a.setI(i); }
};
А если I в классе А я не хочу дать изменить после его создания, из вне? Метод setI то еще доступен...
Почему после C# в C++ так неудобно...
class A { public: A(int i) : I{i} { } private: int I; }; class B { public: A a; B(int i) : a{i} {} };
Обсуждают сегодня