在C++中,一个类A有一个成员是另一个类B的一个对象,如何对A进行初始化?是否还有其它方法?

 我来答
百度网友45e16de6f
2006-11-17 · TA获得超过120个赞
知道小有建树答主
回答量:130
采纳率:100%
帮助的人:61.6万
展开全部
你问的是不是这个意思:
class B
{
public:
B();
virtual ~B();
};

class A
{
public:
A();
virtual ~A();

B objB;//声明一个B的对象
}

若照上面的理解,对A的初始化应该放在构造函数中进行,但B的构造函数会在A的之前被执行。基本上,若不牵扯内存的分配等复杂问题,可以在默认的构造函数里添加你的初始化的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友29afc6726
2006-11-17 · TA获得超过342个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:270万
展开全部
#include <iostream.h>
class B
{
public:
int m_i;
};

class A
{
public:
B myB;
A(int m)
{
myB.m_i=m;
}
};

void main()
{
A myA(10);
cout<<endl<<myA.myB.m_i<<endl;
}
这是测试程序,在构造A类对象的时候,内部已经完成了对B类对象的构造。

另一种情况的处理办法
#include "iostream.h"

class B{
public:
int m_i;
B(int m)
{
this->m_i=m;
}

B()
{
m_i=NULL;
}

};

class A{
public:
int m_i;
B myB;
A(int m,int n)
{
m_i=m;
myB=B(n);
}
};

void main()
{
A myA(10,100);
cout<<myA.myB.m_i<<endl<<myA.m_i;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式