-3

为清楚起见,请考虑以下示例:

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?

4

2 回答 2

3

您需要使用构造函数初始化列表,这是显式初始化数据成员的唯一方法。

B() : A_Instance(42) 
{
  // by the time we get here, all data members have been initialized
}
于 2013-08-18T10:16:57.333 回答
1

正如前面的评论所指出的,您使用初始化列表,而不是在构造函数主体内。这很好,因为 A_instance 在创建时而不是之后被初始化。

class A{
    public:
        A(int i){...}
}

class B{
    private:
        A A_instance;
    public:
        B() : A_instance(0) {
           ...
           ...
        }
}
于 2013-08-18T10:17:37.150 回答