एक घोषित चर शून्य प्रारंभ, मूल्य प्रारंभ या डिफ़ॉल्ट प्रारंभ हो सकता है।
अपने उदाहरण में:
करने के लिए शून्य से प्रारंभ प्रकार टी की एक वस्तु का अर्थ है::
Info *p = new Info(); <------- Value Initialization
Info *p = new Info; <------- Default Initialization
सी ++ 03 स्टैंडर्ड 8.5/5 जिसे उपयुक्त प्रत्येक को परिभाषित करता है
- यदि टी एक स्केलर प्रकार (3.9) है, तो ऑब्जेक्ट को 0 (शून्य) के मान में सेट किया जाता है जो टी में परिवर्तित हो जाता है;
- यदि टी एक गैर-यूनियन वर्ग प्रकार है, तो प्रत्येक गैर-डेटा डेटा सदस्य और प्रत्येक बेस-स्तरीय सबोबजेक्ट
शून्य-प्रारंभिक है;
- यदि टी एक संघ प्रकार है, तो ऑब्जेक्ट का पहला नाम डेटा सदस्य शून्य-प्रारंभिक है;
- यदि टी एक सरणी प्रकार है, तो प्रत्येक तत्व शून्य-प्रारंभिक है;
- यदि टी एक संदर्भ प्रकार है, तो कोई प्रारंभिकता नहीं की जाती है।
करने के लिए डिफ़ॉल्ट आरंभ कर प्रकार टी की एक वस्तु का अर्थ है:
- अगर टी एक गैर पॉड वर्ग प्रकार (खंड 9) है, टी के लिए डिफ़ॉल्ट निर्माता कहा जाता है (और प्रारंभ बीमार बनाई है अगर टी में कोई सुलभ डिफ़ॉल्ट कन्स्ट्रक्टर नहीं है);
- यदि टी एक सरणी प्रकार है, तो प्रत्येक तत्व डिफ़ॉल्ट-प्रारंभिक है;
- अन्यथा, ऑब्जेक्ट शून्य-प्रारंभिक है।
करने के लिए मूल्य-प्रारंभ प्रकार टी की एक वस्तु का अर्थ है:
- अगर टी एक वर्ग प्रकार (खंड 9) एक उपयोगकर्ता के घोषित निर्माता (12 के साथ है।1), तो टी के लिए डिफ़ॉल्ट कन्स्ट्रक्टर कहा जाता है (और प्रारंभिकता बीमार है यदि टी के पास डिफ़ॉल्ट कन्स्ट्रक्टर नहीं है);
- यदि टी उपयोगकर्ता द्वारा घोषित कन्स्ट्रक्टर के बिना गैर-यूनियन क्लास प्रकार है, तो प्रत्येक गैर-स्थैतिक डेटा सदस्य और टी के बेस-क्लास घटक मूल्य-प्रारंभिक होते हैं;
- यदि टी एक सरणी प्रकार है, तो प्रत्येक तत्व मूल्य-प्रारंभिक है;
- अन्यथा, ऑब्जेक्ट शून्य-प्रारंभिक
स्रोत
2012-01-14 07:19:16
संभावित डुप्लिकेट [निम्न वाक्यांशों का अर्थ सी ++ में क्या है: शून्य-, डिफ़ॉल्ट- और मान-प्रारंभिकरण?] (Http://stackoverflow.com/questions/1613341 /), [सी ++ 03 में डिफ़ॉल्ट-प्रारंभिक और मूल्य-प्रारंभिक के बीच अंतर?] (Http://stackoverflow.com/questions/7084831/)। – outis