पाठ्यपुस्तक उदाहरणों के अलावा - असली दुनिया में - क्या यह कभी भी एकाधिक विरासत का उपयोग करने के लिए समझ में आता है (जहां बेस क्लास में से एक से अधिक शुद्ध इंटरफेस नहीं हैं) सी ++ में?सी ++ एकाधिक विरासत के असली दुनिया के उदाहरण क्या हैं?
उत्तर
यह बहुत आम है जब Policy-based design का उपयोग कर, उदाहरण के लिए।
वहाँ एक पाठ्यपुस्तक उदाहरण है, लेकिन कुछ भी वास्तविक दुनिया से उद्धृत। – Potatoswatter
iostream
पर इंगित करना सबसे आसान है, जो istream
और ostream
से प्राप्त होता है। cin
और cout
istream
और ostream
क्रमशः fstream
iostream
से निकले हैं।
माइक्रोसॉफ्ट के ATL (सक्रिय टेम्पलेट लायब्रेरी) mixin वर्ग के रूप में एकाधिक वंशानुक्रम का उपयोग करता है:
मैंने 'असली दुनिया' में कई विरासत का उपयोग किया है - एक नौकरी में जहां मैं मैपिंग एप्लिकेशन कोडिंग में शामिल था।
दुर्भाग्य से, मुझे सटीक उदाहरण याद नहीं है जो मुझे अविश्वसनीय रूप से निराशाजनक लगता है।
हालांकि, यहां बिंदुओं पर विचार करने के लिए और वैकल्पिक पैटर्न या समाधान के बारे में एक दिलचस्प लेख का उपयोग पर विचार करना है:
http://www.parashift.com/c++-faq-lite/multiple-inheritance.html#faq-25.2
मैं उदाहरण के लिए वाहनों का उपयोग पसंद है - विशेष रूप से द्विधा गतिवाला वाहन में जोड़ने।
एकाधिक विरासत निश्चित रूप से इसकी जगह है और यह बहुत उपयोगी हो सकता है। एक सामान्य दिशानिर्देश के रूप में जब भी संभव हो, एक बेस क्लास अमूर्त होना चाहिए, जिसका अर्थ है कि आप इसे किसी ऑब्जेक्ट को बनाने में सक्षम नहीं होना चाहिए, लेकिन कंक्रीट क्लास से विरासत में आने से आपको कुछ भी नहीं रोकना चाहिए। यह निश्चित रूप से एक योग्यता है कि आप टी कक्षा से वंचित कार्यान्वयन का लाभ उठा सकते हैं। Iostream पर एक जवाब पर उदाहरण एक अच्छा है। एक अन्य उदाहरण एक कर्मचारी जो भी एक मालिक/एक व्यवसाय के निर्देशक है मॉडलिंग कहने के लिए शायद है और आप के रूप में
public class Director
{
................
double CalculateDividend();
bool ApproveBudget();
};
public class Employee
{
................
double CalculateSalary();
};
public class WorkingDirector: Employee, Director
{
..............
};
यह मॉडल अब एक WorkingDirector वस्तु क्या एक कर्मचारी और एक निर्देशक जो एक है कर सकते हैं, कर सकते हैं होगा realworld में सही है। हमें किसी भी विधि कार्यान्वयन को ओवरराइट करने की भी आवश्यकता नहीं होगी।
कई मामलों में डिजाइन पैटर्न को लागू करने के लिए कई विरासत समर्थन के साथ भी आसान बना दिया गया है।
यह एक वास्तविक शब्द उदाहरण नहीं है। – Petter
आईएमओ, यह तर्क के लिए खुला है। टेम्पलेट्स से पहले, ऐसे उचित मामले थे जो इसे उचित ठहराते थे। असल में, आप बेस क्लास का उपयोग कर सकते हैं जैसे आप टेम्पलेट्स के साथ पॉलिसी क्लासेस का उपयोग कर सकते हैं। आप (कुछ) प्राप्त कर सकते हैं एकाधिक वंशानुक्रम के साथ काफी समान क्षमताओं आप बल्कि किसी कारण से टेम्पलेट का उपयोग नहीं करना चाहते तो
template <typename policy1, typename policy2>
class whatever {
policy1 p1;
policy2 p2;
public:
void dosomething() { if (p1.enquire()) p2.dosomething(); }
};
,: उदाहरण के लिए, की तरह एक टेम्पलेट पर विचार
class whatever : policy1, policy2 {
void dosomething() { if (enquire()) dosomething(); }
};
दोनों मामलों में, आप मूल रूप से अपनी नई वस्तु में "नीति" का एक उदाहरण एम्बेड कर रहे हैं।हम निजी वंशानुक्रम का उपयोग कर रहे हैं, वहाँ LSP साथ कोई चिंता नहीं है - बल्कि, यह है - ज्यादा नीति पर आधारित टेम्पलेट के साथ की तरह, आशय एक बड़ी पदानुक्रम कि पदानुक्रम के सदस्यों के बीच संबंधों के बारे में कुछ भी दावा है बनाने के लिए नहीं है बस मांग पर असंबंधित कक्षाओं की एक विशाल विविधता बनाने की क्षमता बनाने के बारे में।
- 1. "प्रोग्रामिंग के तत्व" असली दुनिया के उदाहरण?
- 2. असली दुनिया के आवेदन
- 3. PHP: असली दुनिया ओओपी उदाहरण
- 4. हफमैन कोडिंग के असली दुनिया के अनुप्रयोग क्या हैं?
- 5. एकाधिक विरासत: एक अच्छा उदाहरण क्या है?
- 6. एसीआईडी का असली दुनिया का उदाहरण क्या है?
- 7. असली दुनिया ओपनसॉर्स सी # अनुप्रयोग अच्छे कोड दिखा रहे हैं
- 8. असली दुनिया प्री/पोस्ट-ऑर्डर पेड़ ट्रैवर्सल उदाहरण
- 9. असली दुनिया में जावाकार्ड 3?
- 10. एंटरप्राइज़ सर्विस बस असली दुनिया उपयोग या उदाहरण
- 11. वास्तविक दुनिया के लिए खोज रहे हैं उदाहरण उदाहरण
- 12. असली दुनिया के अनुप्रयोगों में अर्थात् वेब प्रौद्योगिकियों का उपयोग करने के उदाहरण
- 13. .NET में एकाधिक-विरासत के कुछ अच्छे विकल्प क्या हैं?
- 14. सी ++ एकाधिक विरासत प्रश्न
- 15. स्कैला contravariance - असली जीवन उदाहरण
- 16. जावा ईई असली दुनिया ओपन सोर्स अनुप्रयोग
- 17. सी ++ "एकाधिक कक्षाओं" के साथ एकाधिक विरासत मेमोरी लेआउट
- 18. असली दुनिया में हास्केल बनाम प्रक्रियात्मक प्रोग्रामिंग
- 19. सीएसएस की असली दुनिया की इकाइयां कितनी सटीक हैं?
- 20. जावा मल्टी थ्रेडिंग - असली दुनिया उपयोग के मामलों
- 21. असली सी/सी ++ कोड
- 22. "संभाल" समारोह और असली दुनिया हास्केल
- 23. exf to exe, असली दुनिया का अनुभव
- 24. जेएमएस/संदेश कतारों का असली दुनिया उपयोग?
- 25. असली दुनिया में पियर कितना आम है?
- 26. 'विरासत प्रत्यक्ष आधार' एकाधिक विरासत के कारण
- 27. एकाधिक विरासत के लिए उपयोग?
- 28. सभी (असली दुनिया हास्केल सहित) एक कर सकते हैं ट्यूटोरियल की एक संख्या के अनुसार हास्केल
- 29. सी ++ एकाधिक वर्चुअल विरासत बनाम COM
- 30. क्या असली दुनिया उपयोग में आराम से वेब सेवाओं के लिए हैटओस प्राप्त करना उचित है?
C++ प्रोग्रामिंग के लगभग 20 वर्षों में +1 मेरे पास है * कभी नहीं * एक स्थिति मैं कहाँ की जरूरत * है * एकाधिक inheritence का उपयोग करने के लिए किया गया। – Raedwald
@Raedwald मतलब यह नहीं है कि कि किसी सी ++ काम करता है में कैसे एकाधिक विरासत में पता नहीं करना चाहिए। – anonymous