2012-12-26 19 views
10

मैं इस संसाधन को देख रहा हूँ:सदस्य प्रकार कैसे कार्यान्वित किए जाते हैं?

http://www.cplusplus.com/reference/vector/vector/

उदाहरण के लिए, वर्ग वेक्टर पर इटरेटर सदस्य प्रकार

क्या "सदस्य प्रकार" को बस टाइप किए गए या वेक्टर वर्ग में समान कुछ के रूप में लागू किया जाएगा? यह मुझे स्पष्ट नहीं है कि "सदस्य प्रकार" का वास्तव में क्या अर्थ है, और मैंने कुछ सी ++ पाठ्यपुस्तकों को देखा है, वे इस वाक्यांश का बिल्कुल भी उल्लेख नहीं करते हैं।

उत्तर

24

सी ++ मानक इस वाक्यांश का उपयोग नहीं करता है। इसके बजाए, यह इसे नेस्टेड प्रकार का नाम (§9.9) कहलाएगा।

वहाँ एक पाने के लिए चार तरीके हैं:

class C 
{ 
public: 
    typedef int int_type;  // as a nested typedef-name 
    using float_type = float; // C++11: typedef-name declared using 'using' 

    class inner_type { /*...*/ }; // as a nested class or struct 

    enum enum_type { one, two, three }; // nested enum (or 'enum class' in C++11) 
}; 

नेस्टेड प्रकार के नाम वर्ग दायरे में परिभाषित कर रहे हैं, और आदेश है कि दायरे से बाहर से उन्हें करने के लिए, नाम योग्यता की जरूरत है:

int_type  a1;   // error, 'int_type' not known 
C::int_type a2;   // OK 
C::enum_type a3 = C::one; // OK 
+3

मेरी इच्छा है कि इस वेबसाइट पर हर उत्तर ऐसी स्पष्टता, सादगी और दक्षता प्रदान किया गया हो। धन्यवाद। – johnbakers

1

सदस्य का प्रकार बस एक प्रकार का है जो उस सदस्य (उस वर्ग का) है। यह typedef हो सकता है जैसा कि आप कहते हैं (vector के मामले में यह T* होने की संभावना है) या इसे class (या struct) निहित किया जा सकता है।

1

सदस्य का प्रकार 'नेस्टेड क्लास' या 'नेस्टेड स्ट्रक्चर' का संदर्भ ले सकता है। इसका मतलब है कि किसी अन्य वर्ग के अंदर कक्षा। यदि आप पाठ्य पुस्तकों को संदर्भित करना चाहते हैं तो 'नेस्टेड कक्षाओं' की खोज करें।

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