c++ - Copy constructor problem -
मैंने कथन निर्माता का प्रयोग करने की कोशिश की:
X y = X ();
लेकिन कॉपी निर्माता को बुलाया नहीं जा रहा है। मैं जी ++ 4.1.0 का उपयोग कर रहा हूँ मैं कक्षा में एक्स (कंस एक्स एंड) और एक्स (एक्स एंड) कन्स्ट्रक्टर दोनों सेट करता हूं।
क्या यह काम करना है या मैं कोड में कुछ बहुत ही बुनियादी समस्या कर रहा हूं?
वर्ग के लिए मेरा कोड
वर्ग ए {सार्वजनिक: int i; ए (इंट ii) {i = ii; } ए (कॉन्स्ट ए & amp;) {i = 5; } ए (ए & amp;) {i = -1; } ए () {i = 5000; }};
जब मैं इसे A a = A ();
या A a = A (100);
का उपयोग करते हुए इसका उपयोग करता हूं, काम करते हैं लेकिन जब मैं इसे ए (बी);
या ए ए = बी;
का उपयोग करता हूं तो यह ठीक काम करता है।
मुझे क्या याद आ रही है ? मैंने देखा कि इसके अनुसार, यह काम करना चाहिए परन्तु यह मेरे मामले में काम नहीं कर रहा है: (।
आपके सभी उत्तर और टिप्पणियों के लिए अग्रिम धन्यवाद।
संकलक को कुछ स्थितियों में प्रतिलिपि कन्स्ट्रक्टर को कॉल को दूर करने की अनुमति है। किसी अस्थायी वस्तु को शुरू करने से उनमें से एक है। इस मामले में, अस्थायी रूप से एक अस्थायी निर्माण के बजाय इन-प्लेस का निर्माण किया जाता है और उसके बाद उसे नामित ऑब्जेक्ट में कॉपी किया जाता है।
आप प्रति नामित ऑब्जेक्ट का निर्माण करके उस कॉपी की प्रतिलिपि बना सकते हैं:
x x; x y = x;
Comments
Post a Comment