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