oll*_*llo 5 c++ oop initialization class
这样的事情如何在 Cpp 中初始化,当在我的main, 我做:Testing test?
class Testing
{
public:
Testing();
void initalize();
~Testing();
void run();
private:
int x;
int y;
int z;
bool isBugged;
OtherClass otherClass_;
};
Run Code Online (Sandbox Code Playgroud)
顺序是什么?
首先调用类构造函数,并且可以使用初始值设定项列表来参数化成员构造函数调用,否则在类构造函数入口处使用它们的默认构造函数。
Class() : otherClass_("fred", 42) {
//ctor body
}
Run Code Online (Sandbox Code Playgroud)
会在 的构造函数主体之前调用 的OtherClass(OtherClass(char *name, int age)例如)构造函数。Class否则将使用默认构造函数(无参数)。但由于成员在身体中可用,因此它们是在进入身体之前构建的。上面的示例是一个初始值设定项列表,并且是Class的构造函数显式调用成员构造函数的机会,否则此时将解析为默认构造函数调用。
成员构造的顺序是它们在类声明中出现(声明)的顺序。如果这与您在初始化列表中调用构造函数的顺序不同,您的编译器应该警告您。