如何为成员使用非默认构造函数?

Jer*_*wen 11 c++ constructor default class member

我有两节课

class a {
    public:
        a(int i);
};

class b {
    public:
        b(); //Gives me an error here, because it tries to find constructor a::a()
        a aInstance;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到它以便aInstance用(int i)实例化而不是试图搜索默认构造函数?基本上,我想从b的构造函数中控制对构造函数的调用.

i_a*_*orf 23

您需要在构造函数初始化列表中显式调用(int):

b() : aInstance(3) {} 
Run Code Online (Sandbox Code Playgroud)

其中3是您要使用的初始值.虽然它可以是任何int.有关订单和其他警告的重要说明,请参阅注释.

  • 是的,您也可以使用它来初始化成员。 (2认同)