syntax - What is the explicit keyword for in c++? -


संभव डुप्लिकेट:

  स्पष्ट सीआईएमजी (const char * const फ़ाइलनाम): _ चौड़ाई (0), _ ऊँचाई (0), _ गहराई (0), _ स्पेक्ट्रम (0), _ is_shared (गलत), _ डेटा (0) {असाइन करें (फ़ाइल नाम); }  

इसके साथ या बिना अंतर क्या है?

यह कंसल्टेंट्स को सजाने के लिए उपयोग करें; अंतर्निहित रूपांतरण के लिए कंपाइलर द्वारा सजाए गए एक कंस्ट्रक्टर का उपयोग नहीं किया जा सकता।

सी ++ एक उपयोगकर्ता द्वारा प्रदत्त रूपांतरण तक पहुंच की अनुमति देता है, जहां "उपयोगकर्ता द्वारा प्रदान किए गए" का अर्थ है "क्लास कन्स्ट्रक्टर के माध्यम से", उदाहरण के लिए:

  वर्ग मंडल {सर्कल (कॉन्स्ट इंट आर); } सर्कल c = 3; // सीटीओआर  

का उपयोग करके निहित रूपांतरण यहां सर्कल सीटीओर को कॉल करेंगे, constructinmg सर्कल c 3 के मान के साथ r

स्पष्ट का उपयोग तब किया जाता है जब आप यह नहीं चाहते। स्पष्ट अर्थ जोड़ना है कि आपको स्पष्ट रूप से निर्माण करना होगा:

  वर्ग मंडल {स्पष्ट सर्कल (const int r); } // चक्र c = 3; अंतर्निहित रूपांतरण अब उपलब्ध नहीं है सर्कल सी (3); // स्पष्ट और अनुमति  

Comments