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

Proper order/place of subclass construction

本文关键字:顺序 位置 子类      更新时间:2023-10-16

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

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

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

看来你的masterClass和subClass之间的关系是组合

我的建议是分别创建子类和masterClass。并将子类的实例视为masterClass的成员。就像你说的"先构造并初始化它们,然后传递给masterClass"一样。因为这是composition的正确用法。

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