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