2011-02-08 21 views
16

निम्नलिखित में से किस में MyClass का निर्माता है?कन्स्ट्रक्टर कहां कहा जाता है?

1. myClass class1; 
2. myClass* class1; 
3. myClass* class1 = new myClass; 

धन्यवाद एक बहुत

+5

यह एक होमवर्क टैग की आवश्यकता है? – user535617

+5

@ user535617 - या साक्षात्कार प्रश्न टैग ... –

+0

किस प्रकार MyClass पर निर्भर करता है। –

उत्तर

29
  1. हाँ - डिफ़ॉल्ट निर्माता, ढेर पर बनाया उदाहरण
  2. नहीं
  3. हाँ - डिफ़ॉल्ट निर्माता, उदाहरण के ढेर पर बनाया
1

1 और 3 , क्योंकि उनमें से आप एक MyClass ऑब्जेक्ट बनाते हैं।

1

निर्माता मामलों 1 और 3 में कहा जाता है जब एक वर्ग instantiated किया जाता है। दूसरा एक (2) केवल एक सूचक घोषित करता है।

4

में दोनों # 1 और # 3 के बाद से आप वास्तव में वस्तु का एक उदाहरण बना रहे हैं। # 2 में आप केवल एक सूचक घोषित कर रहे हैं जो किसी उदाहरण को इंगित नहीं करता है।

4
  1. कथन स्टैक पर किसी ऑब्जेक्ट को इंस्टेंट करेगा, कॉलर कॉल करें।
  2. स्टैक पर परिभाषित करता है केवल एक सूचक चर, कोई निर्माता कहा जाता है।
  3. नए ऑपरेटर मुक्त दुकान में एक वस्तु (आमतौर पर ढेर) बना सकते हैं और c'tor कहेंगे।

लेकिन यह कोड किसी ऑब्जेक्ट को तुरंत चालू नहीं करेगा, क्योंकि यह संकलित नहीं होता है। ;-) इस एक का प्रयास करें:

myClass class1; 
myClass* class2; 
myClass* class3 = new myClass; 
  • कक्षा 1 एक स्थानीय चर (ढेर पर), निर्माता कहा जाता है।
  • वर्ग 2 एक सूचक है, कोई निर्माता कहा जाता है।
  • कक्षा 3 एक सूचक है, जब कन्स्ट्रक्टर को बुलाया जाता है, जब नया निष्पादित किया जाता है।
+0

आपने 2 स्विच किया है और 3. – DarkDust

+0

@ डार्कडस्ट: ओह, ठीक है आप हैं। – harper

संबंधित मुद्दे