क्या किसी ओवरलोडेड कन्स्ट्रक्टर के लिए किसी भी तरह से कक्षा के भीतर एक और कन्स्ट्रक्टर को कॉल करना संभव है, नीचे दिए गए कोड के समान?क्या सी ++ में कोई सुविधा निर्माता है?
class A {
public:
A(std::string str) : m_str(str) {}
A(int i) { *this = std::move(A(std::to_string(i))); }
std::string m_str;
};
उपरोक्त कोड काम करता है, फिर भी मुझे डर है कि इसे कन्स्ट्रक्टर में कॉल करने से अपरिभाषित व्यवहार हो सकता है।
यदि आप ऐसा कर सकते हैं तो कृपया बताएं कि एक बेहतर विकल्प क्यों और सुझाव भी देते हैं?
अवधि आप देख रहे हैं "प्रतिनिधि कंस्ट्रक्टर्स" है। – nwp
क्यों नहीं 'ए (int i): m_str (std :: to_string (i)) {} '? – CoryKramer
यह एक न्यूनतम उदाहरण है। मैं एक कन्स्ट्रक्टर को अधिभारित करना चाहता हूं जो 7 मानकों को स्वीकार करता है, जिनमें से 4 में डिफ़ॉल्ट मान हैं और मैं एक से अधिक स्थानों में डिफ़ॉल्ट रूप से डिफ़ॉल्ट रूप से सेट करना चाहता हूं। – Makaronodentro