सबसे पहली बात:
$ 12.3.1/1 - "एक निर्माता समारोह-विनिर्देशक बिना घोषित स्पष्ट से एक रूपांतरण को निर्दिष्ट के प्रकार इसके पैरामीटर अपनी कक्षा के प्रकार के लिए। इस तरह के एक निर्माता को एक कनवर्टिंग कन्स्ट्रक्टर कहा जाता है। "
आपके उदाहरण में, आईएनटी एक उपयोगकर्ता परिभाषित वर्ग है जिसमें 'int' से कनवर्ट करने वाला कन्स्ट्रक्टर है।
इसलिए निम्नलिखित कोड अच्छी तरह से गठित किया गया है:
INT i(1024); // direct initialization syntax
इसका मतलब यह है कि आप एक पूर्णांक से एक INT वस्तु प्राप्त कर सकते हैं। हालांकि, अगर कोई आईएनटी ऑब्जेक्ट को एक पूर्णांक में परिवर्तित किया जाना है, तो कोई क्या करता है? संक्रामिता?
एक कह सकते हैं कि वर्ग INT समझाया पूर्णांक सदस्य
int x = i.geta();
हालांकि यह बहुत सहज ज्ञान युक्त नहीं है और एक मानकीकृत तरीका नहीं है वापस जाने के लिए एक सदस्य समारोह प्रदान कर सकते हैं।साथ ही यह अंतर्निहित नहीं है जब इस तरह की स्थितियों में अंतर्निहित प्रकार काम करते हैं।
int z = 0;
int y1 = z; // copy initialization or
int y2(z); // direct initialization
double d = (int)z; // explicit cast
स्टैंडर्ड वजह कह कर इस तरह के मानकीकरण और उपयोगकर्ता निर्धारित प्रकार परिवर्तित करने की intuitiveness के लिए अनुमति देता है:
$ 12,3/2 - "एक दसवीं कक्षा एक नाम के साथ कोई पैरामीटर होने के एक सदस्य समारोह फार्म की [...]
ऑपरेटर रूपांतरण प्रकार आईडी
[ ...] रूपांतरण-प्रकार-आईडी द्वारा निर्दिष्ट एक्स से प्रकार का रूपांतरण निर्दिष्ट करता है। ऐसे कार्य रूपांतरण कार्यों कहलाते हैं। कोई वापसी प्रकार निर्दिष्ट किया जा सकता है। यदि कोई रूपांतरण फ़ंक्शन एक सदस्य फ़ंक्शन है, तो रूपांतरण फ़ंक्शन (8.3.5) का प्रकार है " पैरामीटर रूपांतरण-प्रकार-आईडी लौटने पर पैरामीटर नहीं ले रहा है"।
यह बनाता है निम्न में से सभी अच्छी तरह से गठित और रास्ता के साथ सद्भाव को बरकरार रखे हुए निर्मित प्रकार काम
int y1 = i; // copy initialization or
int y2(i); // direct initialization
double d = (int)i; // explicit cast
क्या बोल्ड कोड है? अन्यथा यह मूल रूप से 'int' और ऑपरेटर '++' में रूपांतरण के साथ' int' के लिए एक रैपर है। –
मूल पोस्ट के स्रोत को देखते हुए, 'ऑपरेटर int() 'बोल्ड कोड माना जाता है। –
यदि मैं कर सकता, तो मैं ईमानदारी से इसे फिर से खोलने के लिए वोट दूंगा। मूल प्रश्न खराब रूप से स्वरूपित किया गया था लेकिन बोल्ड में स्पष्ट रूप से कोड का एक खंड था। बाद में संपादित (ओपी द्वारा नहीं) ने कोड को गैर-बोल्ड बनाया और इसलिए सवाल को असंगत लग रहा था। – eldarerathis