सी ++ में, आप कन्स्ट्रक्टर चलने से पहले कक्षा के फ़ील्ड को आरंभ करने के लिए प्रारंभकर्ता सूची का उपयोग कर सकते हैं। उदाहरण के लिए:जावा में प्रारंभिक सूचियां क्यों नहीं हैं जैसे सी ++ में?
Foo::Foo(string s, double d, int n) : name(s), weight(d), age(n) {
// Empty; already handled!
}
मुझे उत्सुकता है कि जावा में एक समान सुविधा क्यों नहीं है। खंड 1: कोर जावा के अनुसार
सी ++ क्षेत्र कंस्ट्रक्टर्स कॉल करने के लिए इस विशेष सिंटैक्स का उपयोग करता। जावा में, इसकी कोई आवश्यकता नहीं है क्योंकि ऑब्जेक्ट्स में कोई उप-तत्व नहीं है, केवल अन्य ऑब्जेक्ट्स के पॉइंटर्स हैं।
यहाँ मेरी सवाल कर रहे हैं: "क्योंकि वस्तुओं कोई subobjects है"
क्या वे से क्या मतलब है मुझे समझ में नहीं आता कि सबबोजेक्ट क्या है (मैंने इसे देखने की कोशिश की); क्या उनका मतलब उप-वर्ग का एक झुकाव है जो सुपरक्लास को बढ़ाता है?
के लिए क्यों जावा सी ++ की तरह प्रारंभकर्ता सूचियों नहीं है के रूप में, मुझे लगता है होता है कि कारण है क्योंकि सभी क्षेत्रों में पहले से ही जावा में डिफ़ॉल्ट रूप से प्रारंभ कर रहे हैं और इसलिए भी क्योंकि जावा
super
कीवर्ड (या आधार में सुपर कॉल करने के लिए उपयोग करता है सी ++ लिंगो) -क्लास निर्माता। क्या ये सही है?
उत्कृष्ट जवाब। मुझे अपने प्रश्न के प्रतिक्रिया समय पर बहुत आश्चर्य हुआ। पंजीकरण के बाद मैं आपको उखाड़ दूंगा। इसके अलावा, सी ++ 0x में परिवर्तन के बारे में एक लिंक की सराहना की जाएगी। –
@ जेसी- मदद करने में खुशी हुई! अगर आपको लगता है कि यह सवाल का जवाब देता है तो भी जवाब स्वीकार करना न भूलें। :-) और मैंने प्रश्न में सी ++ 0x परिवर्तन के लिए एक लिंक शामिल किया है। – templatetypedef
रात में एक घंटे से अधिक समय में 1 9 वोट ... अच्छा :-) –