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

C++ में एरो ऑपरेटर क्या है?


डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में क्लास के मेंबर्स को एक्सेस करने के लिए किया जाता है। वे केवल अलग-अलग परिदृश्यों में उपयोग किए जाते हैं। C++ में, क्लास, स्ट्रक्चर, या यूनियन के रूप में घोषित प्रकारों को "क्लास टाइप का" माना जाता है। इसलिए निम्नलिखित उन दोनों को संदर्भित करता है।

  • a.b केवल तभी उपयोग किया जाता है यदि b ऑब्जेक्ट (या रेफरेंस[1] से ऑब्जेक्ट) a का मेंबर है। इसलिए a.b के लिए, a हमेशा एक वास्तविक ऑब्जेक्ट (या क्लास के ऑब्जेक्ट का रेफरेंस) होगा।
  • a->b अनिवार्य रूप से (*a).b के लिए एक संक्षिप्त नोटेशन है, यानी यदि a एक ऑब्जेक्ट का पॉइंटर है, तो a->b उस ऑब्जेक्ट की प्रॉपर्टी b को एक्सेस कर रहा है जिस पर a इंगित करता है।

ध्यान दें कि . ओवरलोडेबल नहीं है। -> एक ओवरलोडेबल ऑपरेटर है, इसलिए हम अपना खुद का फ़ंक्शन (operator->()) परिभाषित कर सकते हैं जिसे इस ऑपरेटर के उपयोग पर कॉल किया जाना चाहिए। इसलिए यदि a एक ऐसे क्लास का ऑब्जेक्ट है जो operator-> को ओवरलोड करता है (ऐसे सामान्य प्रकार स्मार्ट पॉइंटर्स और इटरेटर्स हैं), तो अर्थ वही है जो क्लास डिजाइनर ने कार्यान्वित किया है।

[1] रेफरेंस, अर्थपूर्ण रूप से, ऑब्जेक्ट्स के उपनाम हैं, इसलिए मुझे #3 में "या पॉइंटर का रेफरेंस" भी जोड़ना चाहिए था। हालांकि, मुझे लगा कि यह भ्रमित करने से अधिक सहायक होगा क्योंकि पॉइंटर्स के रेफरेंस (T*&) शायद ही कभी उपयोग किए जाते हैं।

उदाहरण

#include<iostream>
class A {
public:
    int b;
    A() { b = 5; }
};
int main() {
    A a = A();
    A* x = &a;
    std::cout << "a.b = " << a.b << "\n";
    std::cout << "x->b = " << x->b << "\n";
    return 0;
}

आउटपुट

इससे निम्न आउटपुट मिलेगा:

5
5
  1. - C++ में टर्नरी ऑपरेटर (? X : Y)

    कंडीशनल ऑपरेटर (?:) एक टर्नरी ऑपरेटर है (यह तीन ऑपरेंड्स लेता है)। कंडीशनल ऑपरेटर निम्नानुसार कार्य करता है: पहला ऑपरेंड अंतर्निहित रूप से bool में परिवर्तित होता है। इसका मूल्यांकन किया जाता है और सभी साइड इफेक्ट्स जारी रखने से पहले पूरे होते हैं। यदि पहला ऑपरेंड सच (1) मूल्यांकन करता है, तो दूसर

  1. - C++ में sizeof ऑपरेटर क्या है?

    sizeof एक कीवर्ड है, लेकिन यह एक कंपाइल-टाइम ऑपरेटर है जो बाइट्स में एक वेरिएबल या डेटा प्रकार का आकार निर्धारित करता है। sizeof ऑपरेटर का उपयोग क्लासेस, स्ट्रक्चर्स, यूनियन्स और किसी भी अन्य यूजर-डिफाइंड डेटा प्रकार के आकार को प्राप्त करने के लिए किया जा सकता है। sizeof का उपयोग करने का सिंटैक्स न

  1. - C++ में एक्सेस मॉडिफायर्स क्या हैं?

    डेटा छिपाना ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की महत्वपूर्ण विशेषताओं में से एक है जो प्रोग्राम के फंक्शन्स को क्लास टाइप के आंतरिक प्रतिनिधित्व को सीधे एक्सेस करने से रोकता है। क्लास मेंबर्स के लिए एक्सेस प्रतिबंध को लेबल्ड एक्सेस मॉडिफायर्स द्वारा निर्दिष्ट किया जाता है: क्लास बॉडी के भीतर public, pr