C++ में स्ट्रक्चर और क्लास मूल रूप से समान हैं। लेकिन कुछ मामूली अंतर हैं। ये अंतर नीचे दिए गए हैं।
क्लास के सदस्य डिफ़ॉल्ट रूप से प्राइवेट होते हैं, लेकिन स्ट्रक्चर के सदस्य पब्लिक होते हैं। आइए इन दो कोड्स को देखें ताकि अंतर देख सकें।
उदाहरण कोड
#include <iostream> using namespace std; class my_class { int x = 10; }; int main() { my_class my_ob; cout << my_ob.x; }
आउटपुट
यह प्रोग्राम कंपाइल नहीं होगा। यह प्राइवेट डेटा मेंबर के लिए कंपाइल-टाइम एरर उत्पन्न करेगा।
उदाहरण कोड
#include <iostream> using namespace std; struct my_struct{ int x = 10; }; int main() { my_struct my_ob; cout << my_ob.x; }
आउटपुट
10
जब हम किसी क्लास या स्ट्रक्चर से स्ट्रक्चर प्राप्त करते हैं, तो उस बेस क्लास का डिफ़ॉल्ट एक्सेस स्पेसिफायर पब्लिक होता है, लेकिन जब हम क्लास प्राप्त करते हैं तो डिफ़ॉल्ट एक्सेस स्पेसिफायर प्राइवेट होता है।
उदाहरण कोड
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; class my_derived_class : my_base_class{ }; int main() { my_derived_class d; cout << d.x; }
आउटपुट
यह प्रोग्राम कंपाइल नहीं होगा। यह कंपाइल-टाइम एरर उत्पन्न करेगा कि बेस क्लास का वेरिएबल x अप्राप्य है
उदाहरण कोड
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; struct my_derived_struct : my_base_class{ }; int main() { my_derived_struct d; cout << d.x; }
आउटपुट
10