use*_*020 12 c++ initialization
以下代码有效
class A
{
public:
int i;
float f;
};
int main()
{
A a{ 1, 0.1 };
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我为A的成员添加默认值,则它不起作用
class A
{
public:
int i = 0;
float f = 3.14;
};
Run Code Online (Sandbox Code Playgroud)
如何让两者一起工作?
您必须定义一个默认构造函数和一个自定义构造函数,如下例所示:
class A
{
public:
A() {}
A(int const _i, float const _f) : i(_i), f(_f) {}
int i = 0;
float f = 3.14;
};
Run Code Online (Sandbox Code Playgroud)
然而,正如@Kerek SB和 @TC在评论中已经提到的,这将在 C++14 中修复,并且您的代码将按原样工作。
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |