C++ में explicit कीवर्ड का उपयोग कंस्ट्रक्टर्स को चिह्नित करने के लिए किया जाता है ताकि वे टाइप्स को इम्प्लिसिटली कन्वर्ट न करें। उदाहरण के लिए, यदि आपके पास एक क्लास Foo है:
class Foo { public: Foo(int n); // Foo ऑब्जेक्ट को n बाइट्स अलोकेट करता है Foo(const char *p); // char *p से ऑब्जेक्ट इनिशियलाइज़ करता है };
अब यदि आप प्रयास करते हैं:
Foo mystring = 'x';
char 'x' इम्प्लिसिटली int में कन्वर्ट हो जाता है और फिर Foo(int) कंस्ट्रक्टर को कॉल करेगा। लेकिन यह इरादा नहीं था। ऐसी स्थितियों को रोकने और कोड को कम त्रुटि-प्रवण बनाने के लिए, कंस्ट्रक्टर को explicit के रूप में परिभाषित करें:
उदाहरण
class Foo { public: explicit Foo (int n); // n बाइट्स अलोकेट करें Foo(const char *p); // स्ट्रिंग p से इनिशियलाइज़ करें };