有人说说是为了避免歧义。比如:class Widget
{private:
typedef int x; int z(x);
};这样变成了函数声明。但是,在类外同样可以写typedef int x;int z(x);我觉得避免歧义并不是它的原因。之后看有人说是类内不允许直接初始化,那么列表初始化不属于直接初始化吗?请问类内不允许圆括号初始化是什么原因?C++ primer第五版65页只说了“记住”,没说原因啊
1 回答
慕斯王
TA贡献1864条经验 获得超2个赞
你为什么 duang 一下就觉得“避免歧义并不是它的原因”?
Most Vexing Parse 了解一下?想用小括号初始化必然会面对失败。引入列表初始化还不是为了克服这些问题。
- 1 回答
- 0 关注
- 869 浏览
添加回答
举报
0/150
提交
取消