при создании объекта класса в другом классе, имеющем только параметризованный Ctor, «ошибка: x не является типом»

Когда я пытаюсь создать объект класса 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

Но я думаю, почему это дало ошибку в предыдущем случае. Может кто-нибудь объяснить подробно. Благодарю.

0

Решение

Вы не можете назначить значение по умолчанию для члена класса в C ++. Вам нужно определить конструктор.

class A {
public:
int z;
A(int y){z = y;}
};
class B {
public:
int x;
A ob; //
B() : x(5), ob(x) {}
};
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]