Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

आपको C++ में क्लास बनाम स्ट्रक्चर का उपयोग कब करना चाहिए?


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 का उपयोग करके एक्सेस किया जा सकता है।

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


  1. आपको जावास्क्रिप्ट एरो फंक्शंस का उपयोग कब नहीं करना चाहिए?

    तीर फ़ंक्शन का उपयोग ऑब्जेक्ट विधि के रूप में नहीं किया जाना चाहिए क्योंकि एक तीर फ़ंक्शन का अपना यह नहीं होता है। यह संलग्न लेक्सिकल स्कोप का यह मान लेता है जो ऑब्जेक्ट के बजाय विंडो ऑब्जेक्ट है। यह समस्याएँ पैदा कर सकता है क्योंकि अब हम इच्छित वस्तु के बजाय विंडो ऑब्जेक्ट गुणों को घेरेंगे और उन तक

  1. एचडीएमआई स्प्लिटर्स बनाम स्विच:आपको उनका उपयोग कब करना चाहिए?

    हमारे बहुत सारे दृश्य और श्रव्य मनोरंजन इन दिनों एचडीएमआई द्वारा संचालित हैं। SCART प्लग के साथ और अधिक फ़िदा नहीं होना या VGA केबल स्थापित करना; बस एक एचडीएमआई केबल को दोनों सिरों में प्लग करें और आपका काम अच्छा है! हालाँकि, क्या आप जानते हैं कि आप छोटे उपकरण खरीद सकते हैं जो आपको अपने एचडीएमआई प्

  1. क्या आपको स्कोप्स या क्लास मेथड्स का इस्तेमाल करना चाहिए?

    यह लेख कोरियाई में भी उपलब्ध है, सूनसांग होंग के लिए धन्यवाद! कार्यक्षेत्र आपके डेटाबेस से सही वस्तुओं को निकालने का एक शानदार तरीका है: app/models/review.rb class Review < ActiveRecord::Base scope :most_recent, -> (limit) { order(created_at desc).limit(limit) } end आप इस तरह के दायरे का