我想写一个C++程序,其中一个参数化类A的对象- 'a‘必须在另一个类B内初始化。我不应该/不能像A类的'A a(参数列表);’那样初始化,同时声明对象变量'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);
}
};使用上面的代码,我得到了错误。如何在类B中初始化对象a(path)?
发布于 2020-07-20 03:48:16
您正在寻找的功能是member initializer list。在您的示例中,它的用法如下:
class B{
B(string path) : a(path) {
}
};https://stackoverflow.com/questions/62983814
复制相似问题