c++中以一个类b作为另一个类a的成员变量时的问题
在a定义b的时候,b不能带参数,如classa{b(1);}这样就会报错,只能这样定义classa{b;}但如果b只有带参数的构造函数的时候,这样又会报错,怎么办?...
在a定义b的时候,b不能带参数,如
class a
{
b(1);
}
这样就会报错,只能这样定义
class a
{
b;
}
但如果b只有带参数的构造函数的时候,这样又会报错,怎么办? 展开
class a
{
b(1);
}
这样就会报错,只能这样定义
class a
{
b;
}
但如果b只有带参数的构造函数的时候,这样又会报错,怎么办? 展开
5个回答
展开全部
一个类不能作为另一类的成员,只能将一个类的对象作为另一个类的成员。只能先定义类b,然后再定义类a,类a中将类b的一个对象变量作为其成员。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;};
{public:
b (int i) {m_i=i;}; // class b只有一个带参数的构造函数
private:
int m_i;};
class a{
public:
a ()
:m_b(1) // 因为b没有默认构造函数,所以必须在初始化表中初始化
{
};
b m_b;};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
};
{
public:
b (int i) {m_i=i;}; // class b只有一个带参数的构造函数
private:
int m_i;
};
class a
{
public:
a ()
:m_b(1) // 因为b没有默认构造函数,所以必须在初始化表中初始化
{
};
b m_b;
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
};
{
public:
b (int i) {m_i=i;}; // class b只有一个带参数的构造函数
private:
int m_i;
};
class a
{
public:
a ()
:m_b(1) // 因为b没有默认构造函数,所以必须在初始化表中初始化
{
};
b m_b;
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询