C++:在另一个 class 中初始化参数化 class 的对象
C++: Initialising an object of a parameterized class inside another class
我想编写一个 C++ 程序,其中参数化 class A-'a' 的对象必须在另一个 class B 中初始化。我应该 not/can 不像 class 的 'A a(parameter list);' 那样初始化 A 在声明 class 的构造函数之外的对象变量 'a' B. 对象 'a' 的必要参数通过 B 的构造函数获得。如何使用所需参数在 B 的构造函数中初始化 'a'?
Class A{
public:
A(string s)
{cout<<s;}
};
class B{
private:
A a;
public:
B(string path){
a(path);
}
};
上面的代码出现错误。如何初始化class B中的对象a(path)?
您要查找的功能是 member initializer list。在您的示例中,它将像这样使用:
class B{
B(string path) : a(path) {
}
};
我想编写一个 C++ 程序,其中参数化 class A-'a' 的对象必须在另一个 class B 中初始化。我应该 not/can 不像 class 的 'A a(parameter list);' 那样初始化 A 在声明 class 的构造函数之外的对象变量 'a' B. 对象 'a' 的必要参数通过 B 的构造函数获得。如何使用所需参数在 B 的构造函数中初始化 'a'?
Class A{
public:
A(string s)
{cout<<s;}
};
class B{
private:
A a;
public:
B(string path){
a(path);
}
};
上面的代码出现错误。如何初始化class B中的对象a(path)?
您要查找的功能是 member initializer list。在您的示例中,它将像这样使用:
class B{
B(string path) : a(path) {
}
};