c++ - Where is defined that int() is 0? -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 4 उत्तर
#include & lt ; iostream & gt; #include & lt; स्ट्रिंग & gt; Int main () {std :: जोड़ी & lt; std :: string, int & gt; रों; Std :: cout & lt; & lt; S.second & lt; & lt; std :: endl; }
इस उदाहरण में
s.second है
0 हालांकि इसे आरंभ नहीं किया गया है। क्या आप C ++ मानक के लिए एक लिंक प्रदान कर सकते हैं जहां यह निर्धारित किया गया है कि यह
0 क्यों है मुझे पता है क्योंकि
s.second को
int () द्वारा आरंभ किया गया है, लेकिन कठबोली मानक में रेखा मिलती है जहां कहा गया है कि
int ()
0 ।
यह
8.5 प्रारंभकर्ताओं [ Dcl.init]
10) एक ऑब्जेक्ट जिसका प्रारंभकर्ता एक खाली सेट है, अर्थात, (), मूल्य-आरंभीकरण होगा।
और
7) टाइप-ऑब्जेक्ट के एक वस्तु को मूल्य-प्रारंभ करने के लिए इसका अर्थ है:
एक ???? यदि टी एक (संभावित रूप से सीवी योग्य) वर्ग प्रकार (9) एक उपयोगकर्ता द्वारा प्रदत्त निर्माता (12.1) के साथ है, तो टी के लिए डिफ़ॉल्ट कन्स्ट्रक्टर (और प्रारंभिकता बीमार नहीं है अगर टी में कोई पहुंच योग्य डिफ़ॉल्ट कन्स्ट्रक्टर नहीं है) ;
एक ???? अगर टी एक (संभवत: सीवी-योग्य) गैर-यूनियन वर्ग प्रकार है जो उपयोगकर्ता द्वारा प्रदत्त कंस्ट्रक्टर के बिना है, तो ऑब्जेक्ट शून्य-आरंभीकृत है और, यदि टीएपी का निहित-घोषित डिफ़ॉल्ट कन्स्ट्रक्टर गैर-तुच्छ है, तो वह कन्स्ट्रक्टर कहा जाता है। यदि टी एक सरणी प्रकार है, तो प्रत्येक तत्व मूल्य-आरंभीकृत है;
एक ???? अन्यथा, ऑब्जेक्ट शून्य-आरंभीकृत होता है।और मुझे लगता है
5) ऑब्जेक्ट या टी प्रकार के संदर्भ को शून्य-प्रारंभ करने के लिए इसका अर्थ है:
एक ???? यदि टी एक स्केलर प्रकार (3. 9) है, तो ऑब्जेक्ट मान 0 (शून्य) पर सेट है, जिसे अभिन्न निरंतर अभिव्यक्ति के रूप में लिया जाता है, जिसे टी में परिवर्तित किया जाता है; [...]
Comments
Post a Comment