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

सी++ में स्पष्ट कीवर्ड का प्रयोग

यहां हम देखेंगे कि C++ में स्पष्ट कीवर्ड का क्या प्रभाव होगा। उस पर चर्चा करने से पहले, आइए एक उदाहरण कोड देखें, और उसका आउटपुट जानने का प्रयास करें।

उदाहरण

#include <iostream>
using namespace std;
class Point {
   private:
      double x, y;
   public:
      Point(double a = 0.0, double b = 0.0) : x(a), y(b) {
         //constructor
      }
      bool operator==(Point p2) {
         if(p2.x == this->x && p2.y == this->y)
         return true;
         return false;
      }
};
int main() {
   Point p(5, 0);
   if(p == 5)
      cout << "They are same";
   else
      cout << "They are not same";
}

आउटपुट

They are same

यह ठीक काम कर रहा है क्योंकि हम जानते हैं कि यदि एक कंस्ट्रक्टर को केवल एक तर्क का उपयोग करके बुलाया जा सकता है, तो उसे रूपांतरण कंस्ट्रक्टर में बदल दिया जाएगा। लेकिन हम इस प्रकार के रूपांतरण से बच सकते हैं, क्योंकि इससे कुछ अविश्वसनीय परिणाम उत्पन्न हो सकते हैं।

इस रूपांतरण को प्रतिबंधित करने के लिए, हम कंस्ट्रक्टर के साथ स्पष्ट संशोधक का उपयोग कर सकते हैं। उस स्थिति में, इसे परिवर्तित नहीं किया जाएगा। यदि उपरोक्त प्रोग्राम का उपयोग स्पष्ट कीवर्ड का उपयोग करके किया जाता है, तो यह संकलन त्रुटि उत्पन्न करेगा।

उदाहरण

#include <iostream>
using namespace std;
class Point {
   private:
      double x, y;
   public:
      explicit Point(double a = 0.0, double b = 0.0) : x(a), y(b) {
         //constructor
      }
      bool operator==(Point p2) {
         if(p2.x == this->x && p2.y == this->y)
         return true;
         return false;
      }
};
int main() {
   Point p(5, 0);
   if(p == 5)
      cout << "They are same";
   else
      cout << "They are not same";
}

आउटपुट

[Error] no match for 'operator==' (operand types are 'Point' and 'int')
[Note] candidates are:
[Note] bool Point::operator==(Point)

हम अभी भी स्पष्ट कास्टिंग का उपयोग करके बिंदु प्रकार के लिए एक मान टाइपकास्ट कर सकते हैं।

उदाहरण

#include <iostream>
using namespace std;
class Point {
   private:
      double x, y;
   public:
      explicit Point(double a = 0.0, double b = 0.0) : x(a), y(b) {
         //constructor
      }
      bool operator==(Point p2) {
         if(p2.x == this->x && p2.y == this->y)
         return true;
         return false;
      }
};
int main() {
   Point p(5, 0);
   if(p == (Point)5)
      cout << "They are same";
   else
      cout << "They are not same";
}

आउटपुट

They are same

  1. सी ++ में सरणी में विभाजन बिंदु खोजें

    इस ट्यूटोरियल में, हम एक ऐरे में पार्टिशन पॉइंट ढूँढ़ने जा रहे हैं जहाँ पार्टिशन पॉइंट पर छोड़े गए सभी एलिमेंट छोटे हैं और पार्टिशन पॉइंट के सभी एलिमेंट बड़े हैं। आइए समस्या को हल करने के लिए चरणों को देखें। ऐरे को इनिशियलाइज़ करें। सरणी पर पुनरावृति करें। 0 से I तक पुनरावृति करें और प्रत्

  1. C++ में जटिल संख्याओं का उपयोग करते हुए ज्यामिति

    इस खंड में, हम देखेंगे कि सी ++ में एसटीएल से जटिल वर्ग का उपयोग करके बिंदु वर्ग कैसे बनाया जाता है। और उन्हें ज्यामिति से संबंधित कुछ समस्याओं पर लागू करें। कॉम्प्लेक्स नंबर एसटीएल (#include ) . से कॉम्प्लेक्स क्लास के अंदर मौजूद होता है बिंदु वर्ग को परिभाषित करना कॉम्प्लेक्स टू पॉइंट बनाने के लि

  1. C++ में किसी अन्य बिंदु के बारे में एक बिंदु का घूमना

    मूल बिंदु के बारे में एक बिंदु X का घूर्णन एक कोण से होता है घड़ी की विपरीत दिशा में − . द्वारा किया जाता है X by उत्पत्ति के बारे में यहां, सम्मिश्र संख्याओं के लिए फंक्शन पोलर को हेडर फाइल के तहत परिभाषित किया गया है और इसका उपयोग फेज एंगल और परिमाण का उपयोग करके एक कॉम्प्लेक्स नंबर खोजने के