c++中以一个类b作为另一个类a的成员变量时的问题

2024-11-04 15:14:18
推荐回答(3个)
回答1:

class b
{
public:
b (int i) {m_i=i;}; // class b只有一个带参数的构造函数
private:
int m_i;
};
class a
{
public:
a ()
:m_b(1) // 因为b没有默认构造函数,所以必须在初始化表中初始化
{
};
b m_b;
};

回答2:

一个类不能作为另一类的成员,只能将一个类的对象作为另一个类的成员。只能先定义类b,然后再定义类a,类a中将类b的一个对象变量作为其成员。

回答3:

class b
{public:
b (int i) {m_i=i;}; // class b只有一个带参数的构造函数
private:
int m_i;};
class a{
public:
a ()
:m_b(1) // 因为b没有默认构造函数,所以必须在初始化表中初始化
{
};
b m_b;};