首页 > 解决方案 > 当 A 类没有默认构造函数时,在 B 类中有一个 A 类

问题描述

我有一个 A 类,它是我想在 B 类中使用的库的一部分。如果 A 类没有默认构造函数,我如何将 A 类作为 B 类中的私有成员?B 需要用几个变量来初始化,如果可能的话,我想在其他地方初始化它。

class A
{
public:
    A();
    ~A();

private:
    B b;
}; 

标签: c++c++11visual-c++c++14c++17

解决方案


如果 A 类没有默认构造函数,我如何将 A 类作为 B 类中的私有成员

您只需在构造函数中调用它的构造函数

A::A() 
: b( /* args go here */ ) ...
{
}

或者如果您不能提供默认参数,则将它们传递给

A::A( /* args for b */ ) 
: b( /* pass args for b through */ ) ...
{
}

推荐阅读