Avatar ·

C++ में explicit कीवर्ड का क्या अर्थ है और इसकी आवश्यकता क्यों है?

सभी को नमस्ते! मैंने C++ सीखना शुरू किया है और कंस्ट्रक्टर से पहले `explicit` कीवर्ड पर ध्यान गया। अब तक मैं समझ गया हूँ कि यह किसी तरह implicit conversions से संबंधित है, लेकिन मुझे पूरी तरह से समझ नहीं आया कि इसका उपयोग क्यों करें। यहाँ एक सरल उदाहरण है जो मैंने लिखा है। मेरे पास एक `String` क्लास है जो कंस्ट्रक्टर में एक संख्या (स्ट्रिंग का आकार) लेती है: ```cpp class String { public: String(int size) { // कुछ कोड } }; void printString(const String& s) { // स्ट्रिंग प्रिंट करें } int main() { printString(42); // यह काम करता है! लेकिन क्यों? return 0; } ``` मैं `printString` फंक्शन में संख्या `42` भेज रहा हूँ, जबकि यह एक `String` ऑब्जेक्ट की उम्मीद करता है। और यह कंपाइल हो जाता है! मुझे लगता है कि यह अजीब है और त्रुटियों का कारण बन सकता है। उदाहरण के लिए, अगर मैं गलती से गलत टाइप भेज दूँ, तो कंपाइलर मुझे चेतावनी नहीं देगा। मैंने सुना है कि `explicit` इसे ठीक कर सकता है, लेकिन वास्तव में कैसे? इसे कब लागू करना चाहिए? और क्या ऐसे मामले हैं जहाँ implicit conversion उपयोगी है? मैं आभारी रहूँगा।

अभी तक कोई उत्तर नहीं।

लॉग इन करें उत्तर देने के लिए

ब्लॉग