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

क्या है ?-->? सी ++ में ऑपरेटर?


C++ में ऐसा कोई ऑपरेटर नहीं है। कभी-कभी, हमें रैपर प्रकार बनाने की आवश्यकता होती है। उदाहरण के लिए, unique_ptr, shared_ptr, वैकल्पिक और समान जैसे प्रकार। आम तौर पर, इन प्रकारों में एक एक्सेसर सदस्य फ़ंक्शन होता है जिसे .get कहा जाता है, लेकिन वे ऑपरेटर को भी प्रदान करते हैं जो कि सामान्य पॉइंटर्स के समान ही निहित मूल्य तक सीधे पहुंच का समर्थन करते हैं।

समस्या यह है कि कभी-कभी हमारे पास इनमें से कुछ प्रकार एक दूसरे में निहित होते हैं। इसका मतलब यह है कि जब तक हम मूल्य तक नहीं पहुंच जाते, तब तक हमें .get को कई बार कॉल करना होगा या बहुत सारे डिरेफरेंस ऑपरेटरों को रखना होगा।

कुछ इस तरह -

wrapper<wrapper<std::string>> wp;
wp.get().get().length();
wp.get()->length();

यह थोड़ा बदसूरत हो सकता है। यदि हम एक .get() को एक तीर से बदल सकते हैं, तो यह अच्छा होगा यदि हम दूसरे .get() को भी बदल सकें। इसके लिए, C++98 ने एक लंबा तीर ऑपरेटर पेश किया।

wrapper<wrapper<std::string>> wp;
wp--->length();

क्या होगा यदि हमारे पास रैपिंग की एक और परत है? बस एक लंबा तीर बनाएं।

wrapper<wrapper<wrapper<std::string>>> wp;
wp----->length();

लंबा तीर एक एकल ऑपरेटर नहीं है, बल्कि कई ऑपरेटरों का संयोजन है। इस मामले में, एक सामान्य -> ​​ऑपरेटर और पोस्टफिक्स डिक्रीमेंट ऑपरेटर --.

इसलिए, जब हम wp----→length() लिखते हैं, तो कंपाइलर देखता है ((wp--)--)→length()।

यदि हम पोस्टफिक्स को परिभाषित करते हैं -- डिरेफरेंस ऑपरेटर के समान होने के लिए, हमें लंबा तीर और उससे भी लंबा तीर ऑपरेटर मिलता है -

template <typename T>
class wrapper {
   public:
   T* operator->()    { return &t; }
   T& operator--(int) {  return t; }
   private:
   T t;
};

  1. विंडो पर c++ के लिए शीर्ष IDE क्या है?

    केवल टेक्स्ट एडिटर्स पर बड़े प्रोजेक्ट्स को मैनेज करना मुश्किल है। यदि आप ऐसे मामलों में आईडीई का उपयोग करते हैं तो आप अधिक उत्पादक और कम निराश होने की संभावना रखते हैं। विभिन्न प्रकार के आईडीई हैं और आपको अपनी आवश्यकताओं के अनुरूप सही का चयन करना चाहिए। यहां विंडो के लिए सर्वश्रेष्ठ C/C++ IDE की सू

  1. C# में 'is' ऑपरेटर का उद्देश्य क्या है?

    C# में is ऑपरेटर यह जांचता है कि किसी ऑब्जेक्ट का रन-टाइम प्रकार किसी दिए गए प्रकार के अनुकूल है या नहीं। निम्नलिखित वाक्य रचना है। expr is type यहां, expr अभिव्यक्ति है टाइप करें प्रकार का नाम है C# में is ऑपरेटर के उपयोग को दर्शाने वाला एक उदाहरण निम्नलिखित है। उदाहरण using System; class One {

  1. सी # में ऑपरेटर प्राथमिकता क्या है?

    एक ऑपरेटर एक प्रतीक है जो संकलक को विशिष्ट गणितीय या तार्किक जोड़तोड़ करने के लिए कहता है। संचालिका पूर्वता एक व्यंजक में पदों के समूहन को निर्धारित करती है। यह एक अभिव्यक्ति के मूल्यांकन को प्रभावित करता है। कुछ ऑपरेटरों की प्राथमिकता दूसरों की तुलना में अधिक होती है; उदाहरण के लिए, गुणन संचालिका