首页 > 解决方案 > 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)?

标签: c++constructorinitialization

解决方案


您正在寻找的功能是member initializer list。在您的示例中,它将像这样使用:

class B{
    B(string path) : a(path) {
    }
};

推荐阅读