其他分享
首页 > 其他分享> > c – 避免成员变量的默认构造函数

c – 避免成员变量的默认构造函数

作者:互联网

我有一个类与另一个类的成员变量:

class MeasurementUnit {
private:
    MeasurementMultiplier _multiplier;

实际上我不需要MeasurementMultiplier的默认构造函数,因为实际上我将使用参数MeasurementMultiplier(a,b,c)初始化,我会 – 但不能直接:

C2864: 'MeasurementUnit::_multiplier' :
only static const integral data members can be initialized within a class

所以我需要默认的构造函数,没有它不编译错误:C2512:’MeasurementUnit’:没有合适的默认构造函数可用

我可以避免需要默认构造函数吗?

解决方法:

在您的类MeasurementUnit的所有构造函数中,您需要初始化初始化列表中的成员变量_multiplier.例:

MeasurementUnit::MeasurementUnit()
  : _multiplier(1,2,3)
{}

标签:c,default-constructor
来源: https://codeday.me/bug/20191003/1846604.html