मेरे पास रचनाकारों की एक जोड़ी है जो सी ++ 03 शैली में ठीक काम करती है। कंस्ट्रक्टर्स से एक एक सुपर क्लास (या आधार वर्ग) निर्माता कहता है ...प्रतिनिधि रचनाकार: एक प्रतिनिधि कन्स्ट्रक्टर के लिए प्रारंभकर्ता अकेले दिखाई देना चाहिए
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), win(new RawWindow(*this))
{
refresh();
}
...
मैं कैसे इस ऊपर एक छोटे से neaten के लिए नए सी ++ 11 delegating ctor कार्यक्षमता का उपयोग करने पता लगाने की कोशिश कर रहा हूँ। हालांकि, निम्नलिखित कोड निम्नलिखित संकलक त्रुटि ...
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), Window(){}
देता है "एक सौंपने के निर्माता अकेले दिखाई देना चाहिए के लिए एक प्रारंभकर्ता" ...
वहाँ इस के आसपास कोई तरीका है ??
"इस उदाहरण में रचनाकारों को प्रतिनिधि से बचने से बचें" - आपके कोड के रूप में देखकर (धन्यवाद +1), क्या आप इस सुझाव को क्यों बना सकते हैं? – learnvst
@learnvst वे एक फैंसी डिफ़ॉल्ट तर्क के रूप में कार्य कर रहे हैं। मुझे अधिक तर्कसंगत होने के लिए डिफ़ॉल्ट तर्क या आपका मूल कोड मिलता है। – Pubby
हाँ, 'विंडो (आयत())' चीज थोड़ा अजीब लगती है। मैं देखता हूं कि आप कहां से आ रहे हैं। – learnvst