为清楚起见,请考虑以下示例:
class A{
public:
A(int i){...}
}
class B{
private:
A A_instance;
public:
B(){
...
//how can i initialize the A_instance with specific constructor ?
...
}
}
我想,你得到的是我的问题(缺乏知识:D)。如何使用B类中的特定构造函数初始化A_instance?
答案 0 :(得分:3)
您需要使用构造函数初始化列表,这是显式初始化数据成员的唯一方法。
B() : A_Instance(42)
{
// by the time we get here, all data members have been initialized
}
答案 1 :(得分:1)
如前所述,您使用初始化列表,而不是构造函数体内。这很好,因为它是A_instance在创建时而不是在之后初始化。
class A{
public:
A(int i){...}
}
class B{
private:
A A_instance;
public:
B() : A_instance(0) {
...
...
}
}