Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में Struct vs Class


C++ में struct और class लगभग समान हैं - केवल डिफ़ॉल्ट एक्सेस स्पेसिफायर और इनहेरिटेंस में अंतर है।

मुख्य अंतर

पहलूclassstruct
डिफ़ॉल्ट मेंबर एक्सेसprivatepublic
डिफ़ॉल्ट इनहेरिटेंसprivatepublic
कीवर्डclassstruct
अन्य सभी फीचर्ससमानसमान

उदाहरण 1: डिफ़ॉल्ट मेंबर एक्सेस

#include <iostream>
using namespace std;

class MyClass {
    int x = 10;  // private डिफ़ॉल्ट
};

struct MyStruct {
    int x = 10;  // public डिफ़ॉल्ट
};

int main() {
    MyClass c;
    // cout << c.x;  // Error: private
    
    MyStruct s;
    cout << s.x;  // OK: 10
    return 0;
}

उदाहरण 2: डिफ़ॉल्ट इनहेरिटेंस

class Base { public: int x = 10; };

class DerivedClass : Base { };      // private इनहेरिटेंस डिफ़ॉल्ट
struct DerivedStruct : Base { };    // public इनहेरिटेंस डिफ़ॉल्ट

int main() {
    DerivedClass dc;
    // cout << dc.x;  // Error: inaccessible (private inheritance)
    
    DerivedStruct ds;
    cout << ds.x;  // OK: 10 (public inheritance)
    return 0;
}

समानताएं (दोनों में उपलब्ध)

  • मेंबर फंक्शन्स, कंस्ट्रक्टर्स, डिस्ट्रक्टर्स
  • इनहेरिटेंस, पॉलीमॉर्फिज्म, वर्चुअल फंक्शन्स
  • एक्सेस स्पेसिफायर्स (public, private, protected)
  • स्टेटिक मेंबर्स, फ्रेंड्स
  • टेम्पलेट्स, ऑपरेटर ओवरलोडिंग

कन्वेंशन (सर्वोत्तम अभ्यास)

  • struct: POD (Plain Old Data) टाइप्स, डेटा-ओनली एग्रीगेट्स, कोई इनवेरिएंट्स नहीं।
  • class: इनवेरिएंट्स वाले टाइप्स, एनकैप्सुलेशन, बिहेवियर + डेटा।
  • हमेशा स्पष्ट public:/private: लिखें।
  1. - C/C++ में putwchar() फंक्शन

    इस लेख में हम C++ STL में putwchar() फंक्शन के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। putwchar() क्या है? putwchar() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जो हेडर फाइल में परिभाषित है। putwchar() फंक्शन का उपयोग स्टैंडर्ड आउटपुट डिवाइस पर वाइड कैरेक्टर लिखने के लिए किया जाता है। यह फंक्शन

  1. - C/C++ में memcpy() फंक्शन

    इस लेख में हम C++ STL में memcpy() फंक्शन के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। memcpy() क्या है? memcpy() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जो हेडर फाइल में परिभाषित है। memcpy() फंक्शन का उपयोग मेमोरी के ब्लॉक्स को कॉपी करने के लिए किया जाता है। इस फंक्शन का उपयोग एक मेमोरी लोकेश

  1. C/C++ में AA ट्रीज C/C++ में AA ट्रीज

    कंप्यूटर साइंस में AA ट्री को संतुलित ट्री के एक रूप के रूप में परिभाषित किया गया है जिसे क्रमबद्ध डेटा को कुशलतापूर्वक स्टोर और पुनर्प्राप्त करने के लिए लागू किया जाता है। AA ट्रीज को रेड-ब्लैक ट्री के एक रूपांतर के रूप में माना जाता है, एक प्रकार का बाइनरी सर्च ट्री जो प्रविष्टियों के कुशल जोड़ और