子类构造的正确顺序/位置

时间:2015-09-01 07:09:56

标签: c++ class constructor

在一些C ++代码中,我有一个类,我们称之为masterClass,它包含几个类,subClassA,subClassB等成员。

我应该在哪里创建子类?我应该首先构造并初始化它们,然后将它们传递给masterClass吗?或者我应该在masterClass的构造函数中构建和初始化它们,还是在masterClass上的初始化成员函数内部?

一般来说,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

你的masterClass和subClass之间的关系似乎是组合。

我的建议是分别创建subClass和masterClass。并将subClass的实例视为masterClass的成员。与您所说的“首先构造并初始化它们,然后将它们传递给masterClass”相同。由于这是组合物的正确用法。

class subClassA {
    //...
};
class subClassB {
    //...
};
class masterClass {
    //...
private:
    subClassA subA;
    subClassB subB;
};