C ++ संरचना के लिए फ़ंक्शन


93

आमतौर पर हम C ++ स्ट्रक्चर के लिए वैरिएबल को परिभाषित कर सकते हैं, जैसे कि

struct foo {
  int bar;
};

क्या हम एक संरचना के लिए कार्यों को भी परिभाषित कर सकते हैं? हम उन कार्यों का उपयोग कैसे करेंगे?


4
हाँ। उसी तरह जैसे आप C ++ में एक वर्ग के लिए करते हैं
DumbCoder

जवाबों:


142

हां, डिफ़ॉल्ट पहुँच स्तर (सदस्य-वार और विरासत-वार) को छोड़कर 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

37

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

struct A {
    void f() {}
};

इसके अतिरिक्त, स्ट्रक्चर में कंस्ट्रक्टर और डिस्ट्रक्टर्स भी हो सकते हैं।

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

    private: int x;
};
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.