explanation of members पढ़ना:
explicit char_separator(const Char* dropped_delims,
const Char* kept_delims = "",
empty_token_policy empty_tokens = drop_empty_tokens)
explicit char_separator()
1 निर्माता के लिए explicit
कीवर्ड char_separator प्रकार की वस्तुओं की स्पष्ट निर्माण की आवश्यकता है। What does the explicit keyword mean in C++? स्पष्ट कीवर्ड को बहुत अच्छी तरह से शामिल करता है।
दूसरे निर्माता के लिए explicit
कीवर्ड एक शोर है और इसे अनदेखा किया जाता है।
संपादित
C++ मानक:
7.1.2 p6 बताता है:
स्पष्ट विनिर्देशक केवल एक वर्ग घोषणा भीतर कंस्ट्रक्टर्स की घोषणाओं में इस्तेमाल किया जाएगा; 12.3.1 देखें।
12.3.1 p2 बताता है:
एक स्पष्ट निर्माता सिर्फ गैर स्पष्ट कंस्ट्रक्टर्स की तरह वस्तुओं का निर्माण करती है, लेकिन इतना ही जहां सीधे-प्रारंभ वाक्य रचना (8.5) या जहां डाले (5.2 करता है। 9, 5.4) स्पष्ट रूप से उपयोग किया जाता है। एक डिफ़ॉल्ट कन्स्ट्रक्टर एक स्पष्ट निर्माता हो सकता है; ऐसा कन्स्ट्रक्टर डिफ़ॉल्ट-प्रारंभिकरण या मूल्य-प्रारंभिक (8.5) करने के लिए उपयोग किया जाएगा। [उदाहरण:
class Z {
public:
explicit Z();
explicit Z(int);
// ...
};
Z a; // OK: default-initialization performed
Z a1 = 1; // error: no implicit conversion
Z a3 = Z(1); // OK: direct initialization syntax used
Z a2(1); // OK: direct initialization syntax used
Z* p = new Z(1); // OK: direct initialization syntax used
Z a4 = (Z)1; // OK: explicit cast used
Z a5 = static_cast<Z>(1); // OK: explicit cast used
अंत उदाहरण]
तो, explicit
कीवर्ड के साथ डिफ़ॉल्ट निर्माता इस कीवर्ड के बिना के समान है।
स्रोत
2011-07-21 11:50:59
डुप्ली नहीं; यह प्रश्न 'स्पष्ट' कीवर्ड के एक बहुत ही विशिष्ट कोने मामले के बारे में है। –
यह कोई फ़ंक्शन नहीं है, यह एक कन्स्ट्रक्टर है - http://stackoverflow.com/questions/121162/what-does-the-explicit-keyword-in-c-mean/121163#121163 – Skizz
@larsmans को बिना देखने के बताना मुश्किल कुछ वास्तविक उदाहरण –