Когда я пытаюсь создать объект класса A, имеющий только параметризованный конструктор в классе B, я получаю следующие ошибки:
A ob(5); error: expected identifier before numeric constant
A ob(x); error: x is not a type
class A {
public:
int z;
A(int y){z = y;}
};
class B {
public:
int x;
A ob(5); or A ob(x);//This line is creating a problem
};
Я искал то же самое и понял, что мы можем решить эту проблему, написав
A ob;
B():ob(5);
OR
int x;
A ob;
B():ob(x); //here x will be uninitialized though
Но я думаю, почему это дало ошибку в предыдущем случае. Может кто-нибудь объяснить подробно. Благодарю.
Вы не можете назначить значение по умолчанию для члена класса в C ++. Вам нужно определить конструктор.
class A {
public:
int z;
A(int y){z = y;}
};
class B {
public:
int x;
A ob; //
B() : x(5), ob(x) {}
};
Других решений пока нет …