Я прочитал this link из Страуструпа со следующим кодом:Делегирования конструкторов в C++() или {}
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}{}
Есть ли какое-либо различие между скобки и фигурные скобки?
Если нет различий, я могу использовать фигурные скобки и в других вызовах функций? Или это просто в деле конструктора? И наконец Почему у нас должны быть оба синтаксиса? Это немного неоднозначно.
«Могу ли я использовать фигурные скобки в вызовах функций othere, или это просто в деле делегирования конструктора?» - Деление конструктора не является вызовом функции. Вы никогда не сможете использовать '{}' с вызовами функций. – emlai
проверить это: http://stackoverflow.com/questions/18222926/why-is-list-initialization-using-curly-braces-better-than-the-alternatives –