वहाँ एक डिफ़ॉल्ट उपयोगकर्ता परिभाषित निर्माताडिफ़ॉल्ट तर्क के साथ डिफ़ॉल्ट (उपयोगकर्ता परिभाषित) कन्स्ट्रक्टर और कन्स्ट्रक्टर के बीच अंतर?
class Simple
{
public:
Simple() {}
};
और उपयोगकर्ता-निर्धारित निर्माता कि कई तर्क है कि WithDefaults
भी कर सकते हैं की तुलना में इन
class WithDefaults
{
public:
WithDefaults(int i = 1) {}
};
अन्य से प्रत्येक के लिए चूक लगता है लेकिन है के बीच कोई अंतर है i
के लिए एक स्पष्ट मूल्य के साथ बनाया गया है?
विशेष रूप से, मैं सोच रहा हूं, जहां तक भाषा का संबंध है, यदि ये दो रचनाकार दोनों के लिए डिफ़ॉल्ट कन्स्ट्रक्टर का सटीक रोल खेलते हैं, या कक्षाओं के गुणों के बीच सूक्ष्म मतभेद हैं?
दूसरे शब्दों में, एक निर्माता है जिसमें इसके सभी तर्कों के लिए डिफ़ॉल्ट मान हैं हर तरह से एक डिफ़ॉल्ट कन्स्ट्रक्टर?
मैं यह एक डुप्लिकेट होने की उम्मीद कर रहा था, असल में, लेकिन मुझे यह कहीं भी उत्तर नहीं मिला। – MicroVirus
यह * लगभग * उत्तर दिया गया है [सी ++ कन्स्ट्रक्टर के साथ डिफ़ॉल्ट पैरामीटर] (http://stackoverflow.com/questions/187640/default-parameters-with-c-constructors), मुझे लगता है, लेकिन मुझे यकीन नहीं है। – MicroVirus
अलगाव में, मुझे लगता है, कक्षाएं समान हैं। जब रूपांतरणों को ध्यान में रखा जाता है तो वे अलग-अलग कार्य कर सकते हैं। @MicorVirus द्वारा दूसरी टिप्पणी में लिंक यह और बताता है। –