मैं निम्नलिखित कोड के साथ Stroustrup की this link पढ़ें:ग में Delegating कंस्ट्रक्टर्स ++() या {}
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}{}
वहाँ के बीच कोई अंतर है कोष्ठक और घुंघराले ब्रैकेट?
यदि कोई फर्क नहीं पड़ता है तो क्या मैं अन्य फ़ंक्शन कॉल में घुंघराले ब्रैकेट का भी उपयोग कर सकता हूं? या यह सिर्फ कन्स्ट्रक्टर प्रतिनिधिमंडल में है? और अंत में हमारे पास सिंटैक्स दोनों क्यों होना चाहिए? यह थोड़ा अस्पष्ट है।
"क्या मैं अन्य कार्यों के कॉल में घुंघराले ब्रैकेट का भी उपयोग कर सकता हूं या यह केवल कन्स्ट्रक्टर प्रतिनिधिमंडल में है?" - कन्स्ट्रक्टर प्रतिनिधिमंडल एक फंक्शन कॉल नहीं है। आप कभी भी फ़ंक्शन कॉल के साथ '{}' का उपयोग नहीं कर सकते। – emlai
इसे जांचें: http://stackoverflow.com/questions/18222926/why-is-list-initialization-using-curly-braces-better-than-the-alternatives –