ईमानदारी से कहूं तो मैं सच में नहीं पता है, कैसे इस सवाल पूछने के लिए है, इसलिए कृपया नहीं पागल वैसे भी हो :)सी ++ माता पिता वापसी बच्चे में समारोह
, मैं mutators (setters) करना चाहते हैं मेरी कक्षा में this
लौटने के लिए jQuery- a.name("something").address("somethingelse");
की अनुमति देने के लिए मेरे पास एक मूल वर्ग (Entity
) और कई बाल-प्लेस (Client, Agent etc.
) हैं। अधिकांश चीजों के लिए म्यूटेटर Entity
वर्ग (जैसे नाम या पता) से विरासत में प्राप्त होते हैं, लेकिन वे Entity
ऑब्जेक्ट लौटाते हैं, इसलिए मैं उन पर क्लाइंट म्यूटेटर को कॉल नहीं कर सकता।
दूसरे शब्दों में:
// name mutator
Entity& Entity::name(const string& name) {
// [...] checks
_name = name;
return *this;
}
// budgetRange mutator
Client& Client::budgetRange(const long int& range) {
// [...] checks
_budgetRange = range;
return *this;
}
फिर जब मैं इसे कहते हैं:
Client a; a.name("Dorota Adamczyk").budgetRange(50);
संकलक (तार्किक) का कहना है, इकाई वस्तु नहीं budgetRange सदस्य वाले (क्योंकि नाम एक इकाई देता है, ग्राहक नहीं)।
मेरा प्रश्न अब है: मैं इस तरह कुछ कैसे कार्यान्वित कर सकता हूं? मैं childclasses में सभी इकाई कार्यों अधिक भार के बारे में सोचा, लेकिन वह अच्छा नहीं होगा और विरासत :)
अपने विचारों के लिए अग्रिम रूप से धन्यवाद करने के विचार के खिलाफ होगा: डी
Google 'विधि chaining' और' नाम पैरामीटर idiom' के लिए भी Google, जो आप कर रहे हैं।ध्यान दें कि, जब 'क्लाइंट' से विरासत प्राप्त होता है तो आपका कोड नीचे सीआरटीपी समाधान का उपयोग करके फिर से टूट जाएगा। – cheind