आमतौर पर हम C ++ स्ट्रक्चर के लिए वैरिएबल को परिभाषित कर सकते हैं, जैसे कि
struct foo {
int bar;
};
क्या हम एक संरचना के लिए कार्यों को भी परिभाषित कर सकते हैं? हम उन कार्यों का उपयोग कैसे करेंगे?
जवाबों:
हां, डिफ़ॉल्ट पहुँच स्तर (सदस्य-वार और विरासत-वार) को छोड़कर 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
संरचनाओं में कक्षाओं की तरह ही कार्य हो सकते हैं। एकमात्र अंतर यह है कि वे डिफ़ॉल्ट रूप से सार्वजनिक हैं:
struct A {
void f() {}
};
इसके अतिरिक्त, स्ट्रक्चर में कंस्ट्रक्टर और डिस्ट्रक्टर्स भी हो सकते हैं।
struct A {
A() : x(5) {}
~A() {}
private: int x;
};