2012-02-05 12 views
9

संभव डुप्लिकेट: प्रतीक:
What does a colon following a C++ constructor name do?Struct निर्माता सिंटेक्स

मैं नीचे दिए गए उदाहरण ऑनलाइन तथापि निर्माता के लिए वाक्य रचना मुझे एक छोटा सा confuses विशेष रूप से पाया जाता है। क्या कोई मुझे एक संक्षिप्त स्पष्टीकरण दे सकता है? धन्यवाद।

struct TestStruct { 
    int id; 
    TestStruct() : id(42) 
    { 
    } 
}; 
+0

के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1272680/what-does-a -colon-निम्न-एसी-निर्माता-नाम करते हैं)। डुप्लीकेट्स [यहां] की सूची भी देखें (http://stackoverflow.com/questions/3504215/what-does-the-colon-mean-in-a-constructor) –

उत्तर

20

निर्माता id42 जब यह कहा जाता है initializes। इसे एक initliazation सूची कहा जाता है।

अपने उदाहरण में, यह

struct TestStruct { 
    int id; 
    TestStruct() 
    { 
     id = 42; 
    } 
}; 

के बराबर है साथ ही आप कई सदस्यों के साथ यह कर सकते हैं

struct TestStruct { 
    int id; 
    double number; 
    TestStruct() : id(42), number(4.1) 
    { 
    } 
}; 

यह उपयोगी है जब अपने निर्माता के एकमात्र उद्देश्य सदस्य चर

struct TestStruct { 
    int id; 
    double number; 
    TestStruct(int anInt, double aDouble) : id(anInt), number(aDouble) { } 
}; 
आरंभ कर रहा है
+1

"वही चीज़" थोड़ा सा घुमावदार है, और शायद काफी भ्रामक। –

+0

सहमत, और संपादित :) – Vache

+4

कूल, धन्यवाद, लेकिन यह केवल "उपयोगी" नहीं है, लेकिन यह चर के लिए एक पूर्ण आवश्यकता है जिसे गैर-मामूली रूप से शुरू किया जाना चाहिए, जैसे बेस सबोबजेक्ट्स, स्थिरांक या संदर्भ। –

संबंधित मुद्दे