cem*_*ate 4 c++ constructor class
比方说我上课了
class MyClass {
public:
AnotherClass myObject;
};
Run Code Online (Sandbox Code Playgroud)
我的问题是我想用它的构造函数的参数初始化myObject,正如我在函数中声明它在堆栈上一样
AnotherClass myObject(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
但我想为构造函数中的类成员执行此操作:
MyClass::MyClass() {
myObject = ...?
...
}
Run Code Online (Sandbox Code Playgroud)
问题正是如此.如果我声明一个具有构造函数的类成员,C++会调用默认构造函数吗?我怎样才能在类定义中声明变量,但在构造函数中初始化它?
谢谢你的回答!
您可以使用初始化列表.
class MyClass {
public:
MyClass() : myObject(1,2,3){ }
AnotherClass myObject;
};
Run Code Online (Sandbox Code Playgroud)
使用ctor-initializer.成员在基类之后和构造函数体运行之前初始化.
MyClass::MyClass() : myObject(1,2,3) {
...
}
Run Code Online (Sandbox Code Playgroud)