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