标签: c++ initialization
以下代码可以使用
class A { public: int i; float f; }; int main() { A a{ 1, 0.1 }; return 0; }
但是,如果我为A的成员添加默认值,则无效
class A { public: int i = 0; float f = 3.14; };
如何让两者一起工作?
答案 0 :(得分:4)
您必须定义默认和自定义构造函数,如下例所示:
class A { public: A() {} A(int const _i, float const _f) : i(_i), f(_f) {} int i = 0; float f = 3.14; };
LIVE DEMO
然而,正如@Kerek SB已经提到的那样,@T.C.在评论中将在C ++ 14中修复,您的代码将按原样运行。