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) {
    }
};