स्ट्रक्चर्स और क्लासेज C++ में बहुत समान हैं सिवाय कुछ अंतरों के। इसलिए नीचे इन अंतरों के बारे में विवरण दिए गए हैं जो C++ में क्लास या स्ट्रक्चर का उपयोग कब करना है यह तय करने में मदद करते हैं।
क्लास और स्ट्रक्चर के बीच अंतर
क्लास के सभी मेंबर्स डिफ़ॉल्ट रूप से प्राइवेट होते हैं। यह स्ट्रक्चर्स से अलग है क्योंकि स्ट्रक्चर के सभी मेंबर्स डिफ़ॉल्ट रूप से पब्लिक होते हैं।
C++ में क्लास को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है −
उदाहरण
#include <iostream> using namespace std; class Example { int val; }; int main() { Example obj; obj.val = 20; return 0; } यह प्रोग्राम एरर देता है क्योंकि val डिफ़ॉल्ट रूप से प्राइवेट है और इसलिए obj का उपयोग करके सीधे एक्सेस नहीं किया जा सकता।
C++ में स्ट्रक्चर को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है −
उदाहरण
#include <iostream> using namespace std; struct Example { int val; }; int main() { Example obj; obj.val = 20; cout<<"मान है: "<<obj.val; return 0; } आउटपुट
उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है −
मान है: 20
उपरोक्त प्रोग्राम सही ढंग से काम करता है क्योंकि val डिफ़ॉल्ट रूप से पब्लिक है और इसलिए obj का उपयोग करके सीधे एक्सेस किया जा सकता है।
क्लास और स्ट्रक्चर के बीच एक और अंतर इनहेरिटेंस के दौरान स्पष्ट होता है। क्लास इनहेरिट करते समय, बेस क्लास का एक्सेस स्पेसिफायर डिफ़ॉल्ट रूप से प्राइवेट होता है। तुलनात्मक रूप से, स्ट्रक्चर इनहेरिट करते समय, बेस स्ट्रक्चर का एक्सेस स्पेसिफायर डिफ़ॉल्ट रूप से पब्लिक होता है।