我有一个类A,类A只有一个带参数的构造函数A::A(int),没有默认构造函数。 当定义另一个类B时,在类B中如何定义一个类A的成员对象
时间: 2024-03-23 13:43:05 浏览: 48
如果类A只有一个带参数的构造函数A::A(int),没有默认构造函数,那么在类B中定义成员对象时,必须使用带参数的构造函数进行初始化,否则会出现编译错误。可以在类B的构造函数中使用成员初始化列表来完成类A成员对象的初始化,例如:
```c++
class A {
public:
A(int value) {
// 构造函数实现
}
};
class B {
public:
B(int value) : a(value) {
// 成员初始化列表
}
private:
A a;
};
```
在上面的代码中,类B的构造函数中通过成员初始化列表`a(value)`来初始化成员对象`a`,其中`value`是传递给类A构造函数的参数。这样就可以在类B中定义一个类A的成员对象了。
阅读全文