【发布时间】:2017-09-10 02:53:48
【问题描述】:
这是来自 Effective modern c++ 的示例。
class Widget {
…
private:
int x{ 0 }; // fine, x's default value is 0
int y = 0; // also fine
int z(0); // error!
};
【问题讨论】:
标签: c++ c++11 c++14 uniform-initialization
这是来自 Effective modern c++ 的示例。
class Widget {
…
private:
int x{ 0 }; // fine, x's default value is 0
int y = 0; // also fine
int z(0); // error!
};
【问题讨论】:
标签: c++ c++11 c++14 uniform-initialization
直接初始化使用()
类内处理如下
int z(0);
作为函数作为并期望参数。作为结果错误
预期的参数声明符
也可以这样做
class Widget {
private:
int x{ 0 };
int y = 0;
int z;
public:
Widget():z(0){}
};
【讨论】:
std::string s(""); 在这里也不起作用,int z(0); 在其他情况下是正确的