你问的是不是这个意思:
class B
{
public:
B();
virtual ~B();
};
class A
{
public:
A();
virtual ~A();
B objB;//声明一个B的对象
}
若照上面的理解,对A的初始化应该放在构造函数中进行,但B的构造函数会在A的之前被执行。基本上,若不牵扯内存的分配等复杂问题,可以在默认的构造函数里添加你的初始化的代码。
#include
class B
{
public:
int m_i;
};
class A
{
public:
B myB;
A(int m)
{
myB.m_i=m;
}
};
void main()
{
A myA(10);
cout<
这是测试程序,在构造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<