我读 这个链接 Stroustrup的代码如下:
class X {
int a;
public:
X(int x) { if (0<x && x<=max) a=x; else throw bad_X(x); }
X() :X{42} { }
X(string s) :X{lexical_cast<int>(s)} { }
// ...
};
我的问题是关于这条线:
X() X{42}{}
括号和大括号之间有什么区别吗?
如果没有差异,我可以在其他函数调用中使用大括号吗?或者只是在构造函数委托中?
最后为什么我们应该有两种语法?这有点暧昧。