可以使用以下方式,让B调用A的构造函数
class A{
A(int i){}
};
class B{
A a;
public:
B():a(i){}
}
先B中声明A类成员a,再让无参构造B时构造a。但有个问题,如果需要构造多个A类成员就不行了,因为B中只能声明一个无参构造方法B(),所以可以这样:
class A{
A(int i){}
};
class B{
A a1;
A a2;
public:
void init(){
a1=A(i1);
a2=A(i2);
}
}
在初始化函数中用a=A(i)使其运行中构造a。之后用B前先调用下init就行了。