पर प्रतिनिधि मुझे अक्सर कई सदस्य चर के साथ कक्षाओं के लिए थकाऊ चाल रचनाकार लिखते हैं। वे कुछ ऐसी नज़र:डिफ़ॉल्ट चाल कन्स्ट्रक्टर
A(A && rhs) :
a(std::move(rhs.a)),
b(std::move(rhs.b)),
c(std::move(rhs.c)),
d(std::move(rhs.d)) {
some_extra_work();
}
है यही कारण है, वे डिफ़ॉल्ट चाल निर्माता के साथ जुड़े कार्यों के सभी करते हैं, तो कुछ सांसारिक अतिरिक्त कार्य peform। आदर्श रूप में मैं डिफ़ॉल्ट चालक कन्स्ट्रक्टर को प्रतिनिधि दूंगा और फिर अतिरिक्त कार्य करता हूं, हालांकि मेरे स्वयं के चालक कन्स्ट्रक्टर को परिभाषित करने का कार्य डिफ़ॉल्ट कार्यान्वयन को परिभाषित होने से रोकता है, जिसका अर्थ है कि प्रतिनिधि को कुछ भी नहीं है।
क्या इस विरोधी-पैटर्न को पाने के लिए कोई अच्छा तरीका है?
मुश्किल ऐसी अमूर्त स्तर पर कहने के लिए उपयोग करें, लेकिन शायद आप दो वर्गों में 'अलग कर सकता A' और डाल दूसरे में एक? एक में सभी डिफॉल्ट कन्स्ट्रक्टर होंगे और दूसरा 'some_extra_work' करेगा। * शून्य * के नियम की जांच करें। – zch
यह सुनिश्चित नहीं है कि यह लागू है, लेकिन कुछ 'ए (ए && rhs, int): ए (rhs) {} 'काम नहीं करेगा? – Damon
एक डिफ़ॉल्ट चालक कन्स्ट्रक्टर वाला इंटरमीडिएट बेस क्लास मदद कर सकता है। –