2016-03-08 11 views
6
#include<iostream> 
using namespace std; 

class C{ 
private: 
    int value; 
public: 
    C(){ 
     value = 0; 
     cout<<"default constructor"<<endl; 
    } 
    C(const C& c){ 
     value = c.value; 
     cout<<"copy constructor"<<endl; 
    } 
}; 
int main(){ 
    C c1; 
    C c2 = C(); 
} 

आउटपुट:सी सी के बीच कोई अंतर है; और सी सी = सी() ;?

डिफ़ॉल्ट निर्माता

डिफ़ॉल्ट निर्माता

प्रश्न:,

C c1; डिफ़ॉल्ट के लिए निर्माता स्पष्ट रूप से कहा जाएगा C c2 = C(); के लिए मैंने सोचा था कि डिफ़ॉल्ट निर्माता हो जाएगा एक अस्थायी obje शुरू करने के लिए बुलाया सीटी, फिर कॉपी कन्स्ट्रक्टर को सी 2 शुरू करने के लिए कॉल किया जाएगा, ऐसा लगता है कि मैं गलत हूं। क्यूं कर?

+5

कीवर्ड: वापसी मूल्य अनुकूलन, प्रतिलिपि प्रतिलिपि बनाएँ। –

+3

क्योंकि संकलक आपके विचार से ज्यादा चालाक है। –

+0

कीवर्ड: * मूल्य प्रारंभिकरण *, * प्रतिलिपि प्रारंभ *। – juanchopanza

उत्तर

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