c++ - C ++:在另一个类中初始化参数化类的对象
问题描述
我想编写一个 C++ 程序,其中必须在另一个类 B 中初始化参数化类 A-'a' 的对象。我不应该/不能像'A a(parameter list);'那样初始化 类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)?
解决方案
您正在寻找的功能是member initializer list。在您的示例中,它将像这样使用:
class B{
B(string path) : a(path) {
}
};