子类构造的正确顺序/位置 在一些C++代码中,我有一个类,我们称之为Madio类,它包含AS成员的几个类、子类、子类等等。p>

子类构造的正确顺序/位置 在一些C++代码中,我有一个类,我们称之为Madio类,它包含AS成员的几个类、子类、子类等等。p>,c++,class,constructor,C++,Class,Constructor,我应该在哪里创建子类?我应该先构造并初始化它们,然后将它们传递给masterClass吗?或者我应该在masterClass的构造函数中或者在masterClass的初始化成员函数中构造并初始化它们 一般来说,最好的方法是什么?看来主类和子类之间的关系是组合 class subClassA { //... }; class subClassB { //... }; class masterClass { //... private: subClassA subA;

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


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

看来主类和子类之间的关系是组合

class subClassA {
    //...
};
class subClassB {
    //...
};
class masterClass {
    //...
private:
    subClassA subA;
    subClassB subB;
};
我的建议是分别创建子类和主类。并将子类的实例视为masterClass的成员。与您所说的“先构造并初始化它们,然后将它们传递给masterClass”相同。因为这是构图的正确用法

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

这真的取决于你想要完成什么。如果子类的构造函数很昂贵,那么应该尽可能晚地调用它们,最好不要在masterClass的构造函数中调用它们。在某些情况下,您需要创建聚合对象并在将其发送到父类之前对其进行处理。你能提供一些使用示例的代码吗?不相关但有用:在大多数编码样式中,类名以大写字母开头。