2012-10-29 12 views
52

आमतौर पर हम हम भी एक struct के लिए कार्यों को परिभाषित कर सकते हैं, एक सी ++ struct के लिए एक चर को परिभाषित कर सकतेसमारोह

struct foo { 
    int bar; 
}; 

में के रूप में? हम उन कार्यों का उपयोग कैसे करेंगे?

+3

हां। जैसा कि आप सी ++ में कक्षा के लिए करते हैं – DumbCoder

उत्तर

86

हां, struct डिफ़ॉल्ट पहुंच स्तर (सदस्य-वार और विरासत-वार) को छोड़कर class के समान है। (और अतिरिक्त अर्थ class एक टेम्पलेट के साथ उपयोग किए जाने पर चलता है)

कक्षा द्वारा समर्थित प्रत्येक कार्यक्षमता को एक संरचना द्वारा समर्थित किया जाता है। आप विधियों का उपयोग उसी तरह करेंगे जैसे आप उन्हें कक्षा के लिए उपयोग करेंगे।

struct foo { 
    int bar; 
    foo() : bar(3) {} //look, a constructor 
    int getBar() 
    { 
    return bar; 
    } 
}; 

foo f; 
int y = f.getBar(); // y is 3 
21

स्ट्रक्चर में कक्षाओं की तरह कार्य हो सकते हैं। केवल अंतर यह है कि वे डिफ़ॉल्ट रूप से सार्वजनिक हैं:

struct A { 
    void f() {} 
}; 

इसके अतिरिक्त, structs में रचनाकार और विनाशक भी हो सकते हैं।

struct A { 
    A() : x(5) {} 
    ~A() {} 

    private: int x; 
};