अनुशंसित, 2020

संपादक की पसंद

संरचना और वर्ग के बीच अंतर

एक संरचना और एक वर्ग दोनों एक अनुकूलित डेटा प्रकार बनाने का एक तरीका प्रदान करते हैं जिसका उपयोग आगे उदाहरण बनाने के लिए किया जा सकता है। सी ++ एक वर्ग बनाने के लिए संरचना की भूमिका का विस्तार करता है। संरचना और वर्ग दोनों, एक अंतर को छोड़कर सभी प्रकार के समान हैं, डिफ़ॉल्ट रूप से संरचना में इसके सभी सदस्य "सार्वजनिक" हैं, और डिफ़ॉल्ट रूप से कक्षा में इसके सभी सदस्य "निजी" हैं। आइए तुलना चार्ट का उपयोग करके संरचना और वर्ग के बीच के अंतर का अध्ययन करें।

तुलना चार्ट

तुलना के लिए आधारसंरचनाकक्षा
बुनियादीयदि पहुंच निर्दिष्ट नहीं की गई है, तो डिफ़ॉल्ट रूप से सभी सदस्य 'सार्वजनिक' हैं।यदि पहुंच निर्दिष्ट नहीं की गई है, तो डिफ़ॉल्ट रूप से सभी सदस्य 'निजी' हैं।
घोषणासंरचना संरचना_नाम {
type struct_element 1;
type struct_element 2;
type struct_element 3;



};
वर्ग class_name {
डेटा सदस्य;
सदस्य समारोह;
};
उदाहरण'संरचना' के उदाहरण को 'संरचना चर' कहा जाता है।किसी 'वर्ग' के उदाहरण को 'ऑब्जेक्ट' कहा जाता है।

संरचना की परिभाषा

एक संरचना भिन्न डेटा प्रकारों के चर का संग्रह है, सभी एक नाम से संदर्भित हैं। एक संरचना घोषणा एक टेम्पलेट बनाती है जिसका उपयोग संरचना का एक उदाहरण बनाने के लिए किया जाता है। संरचना के रूप में घोषित किया जाता है।

 संरचना sname {type struct_element1; type struct_element2; type struct_element3; । । । } variable1, variable2, । । ।; 

कीवर्ड 'संरचना' कंपाइलर को परिभाषित करता है कि एक संरचना घोषित की जा रही है। 'Sname' संरचना को दिए गए नाम का प्रतिनिधित्व करता है। संरचना की घोषणा हमेशा अर्धविराम द्वारा समाप्त की जाती है, क्योंकि इसे एक बयान के रूप में माना जाता है। आप इसकी समाप्ति से पहले संरचना के उदाहरणों को घोषित कर सकते हैं जैसा कि उपरोक्त कोड (चर 1, चर 2) में किया गया है या आप संरचना के उदाहरण को मुख्य () में लिख सकते हैं, संरचना के नाम के साथ पूर्व उदाहरण उदाहरण लिखकर।

 // उदाहरण। मुख्य () {sname S1, S2; } 

यहाँ S1 और S2 संरचना के उदाहरण हैं। संरचना के उदाहरणों को "संरचना चर" कहा जाता है। संरचना के शरीर के अंदर घोषित तत्व को डॉट (।) ऑपरेटर के उपयोग के माध्यम से संरचना चर के माध्यम से पहुँचा जा सकता है।

 // उदाहरण S1। struct_element1; 
  • संरचना का सरणी भी बनाया जा सकता है, इसके लिए, आपको पहले एक संरचना घोषित करने की आवश्यकता है और फिर, उस प्रकार की एक सरणी घोषित करें।
 // नमूना संरचना sname sarray [10]; 

उपर्युक्त कथन 'चर' नाम से एक सरणी बनाता है जिसमें दस चर होते हैं, और प्रत्येक चर को 'sname' में परिभाषित किया जाता है।

  • आप किसी फ़ंक्शन के लिए एक संरचना सदस्य पास कर सकते हैं, और आप किसी फ़ंक्शन के लिए संपूर्ण संरचना पास कर सकते हैं।
  • जैसे, पूर्णांक सूचक, सरणी सूचक, संरचना चर नाम के सामने '*' रखकर एक संरचना सूचक भी घोषित किया जा सकता है।
 // नमूना संरचना sname * S1; 

ध्यान दें:

'संरचना' तत्व एक सन्निहित स्मृति स्थान में संग्रहीत हैं।

कक्षा की परिभाषा

OOP में क्लास एक नए प्रकार को परिभाषित करता है जिसमें डेटा सदस्य और सदस्य फ़ंक्शन होते हैं, जिनका उपयोग क्लास के डेटा सदस्यों तक पहुंचने के लिए किया जाता है। वर्गों के उदाहरणों को "ऑब्जेक्ट" कहा जाता है, जिनमें से प्रत्येक में एक वर्ग के समान संगठन होता है। वर्ग एक तार्किक अमूर्तता है, जबकि, एक वस्तु का भौतिक अस्तित्व है। वर्ग संरचना के समान ही है। कक्षा को अनुसरण के रूप में घोषित किया जा सकता है।

 वर्ग class_name {निजी डेटा सदस्य और सदस्य फ़ंक्शन। access_specifier type data_member; प्रकार mem_funct (पैरामीटर सूची) {। । }} ऑब्जेक्ट सूची; 

यहां, क्लास एक कीवर्ड है जो कंपाइलर को घोषित करता है कि एक क्लास घोषित किया गया है। ओओपी की मुख्य विशेषता डेटा छिपाना है जो "सार्वजनिक", "निजी", "संरक्षित" हैं, तीन एक्सेस स्पेसिफायर प्रदान करके पूरा किया जाता है। यदि आप डेटा सदस्यों या सदस्य कार्यों की घोषणा करते समय कक्षा में कोई एक्सेस निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट रूप से सभी को निजी माना जाता है। सार्वजनिक पहुँच निर्दिष्टकर्ता आपके प्रोग्राम के अन्य हिस्सों द्वारा एक्सेस किए जाने की अनुमति देता है, कार्य या डेटा। कक्षा के निजी सदस्यों को केवल उस वर्ग के सदस्य द्वारा ही पहुँचा जा सकता है। संरक्षित पहुँच विनिर्देशक वंशानुक्रम के दौरान लागू किया जाता है। एक बार जब आप पहुंच निर्दिष्ट करते हैं, तो इसे पूरे कार्यक्रम में नहीं बदला जा सकता है।

वस्तुएं कक्षाओं के उदाहरण के अलावा और कुछ नहीं हैं। वर्ग के सदस्य एक ही वर्ग के ऑब्जेक्ट द्वारा एक डॉट (।) ऑपरेटर का उपयोग करके एक्सेस किए जाते हैं।

 //object.mem_funct (तर्क); 
  • ऑब्जेक्ट को एक फ़ंक्शन के तर्क के रूप में भी पारित किया जा सकता है।
  • किसी ऑब्जेक्ट का पॉइंटर भी बनाया जा सकता है।

संरचना और कक्षा के बीच महत्वपूर्ण अंतर

  1. संरचनाओं और वर्गों के बीच मुख्य अंतर यह है कि डिफ़ॉल्ट रूप से संरचना के सभी सदस्य सार्वजनिक हैं, जबकि डिफ़ॉल्ट रूप से वर्ग के सभी सदस्य निजी हैं।

समानता:

  • C ++ में संरचना और वर्ग दोनों ही वाक्यात्मक रूप से समतुल्य हैं।
  • संरचना और वर्ग दोनों अपने कुछ सदस्यों को निजी घोषित कर सकते हैं।
  • एक संरचना या वर्ग के नाम का उपयोग स्टैंड-अलोन प्रकार के रूप में किया जा सकता है।
  • दोनों संरचना और एक वर्ग विरासत के तंत्र का समर्थन करते हैं।

निष्कर्ष:

सी में संरचना में कुछ सीमा थी क्योंकि संरचना डेटा को छिपाने की अनुमति नहीं देती है, 'संरचना' डेटाटाइप को अंतर्निहित प्रकारों की तरह व्यवहार नहीं किया जा सकता है, संरचना विरासत का समर्थन नहीं करती है। C ++ में संरचना ने इन सीमाओं को पार कर लिया। सी ++ में, कक्षाएं संरचना का विस्तारित संस्करण हैं। प्रोग्रामर को डेटा को होल्ड करने के लिए क्लास का उपयोग करना आसान है और डेटा को होल्ड करने के लिए संरचना और फ़ंक्शन दोनों का उपयोग करना आसान है।

Top