तो मान लीजिए कि मैं कक्षाओं की एक श्रृंखला बनाना चाहता हूं जिसमें प्रत्येक के साथ एक ही सदस्य-कार्य हो। के समारोहआभासी कार्यों से बचें
void doYourJob();
मैं अंत में एक ही कंटेनर में इन सभी वर्गों रखना चाहते हैं फोन ताकि मैं उन के माध्यम से पाश कर सकते हैं और प्रत्येक प्रदर्शन 'doYourJob()'
स्पष्ट समाधान एक बनाने के लिए है करते हैं समारोह के साथ अमूर्त वर्ग
virtual void doYourJob();
लेकिन मुझे ऐसा करने में संकोच नहीं है। यह एक समय-महंगा कार्यक्रम है और वर्चुअल फ़ंक्शन इसे काफी हद तक खराब कर देगा। साथ ही, यह कार्य एकमात्र चीज है जो कक्षाएं एक-दूसरे के साथ समान होती हैं और doYourJob प्रत्येक वर्ग के लिए पूरी तरह से अलग होती है।
क्या वर्चुअल फ़ंक्शन के साथ एक अमूर्त वर्ग का उपयोग करने से बचने का कोई तरीका है या क्या मुझे इसे चूसना होगा?
पॉलिमॉर्फिक कक्षाओं का उपयोग करके इसे कार्यान्वित करें। यह अत्यधिक संभावना है कि वर्चुअल फ़ंक्शंस को प्रेषण करने का ओवरहेड महत्वहीन होगा। सबसे खराब मामला, यह महत्वपूर्ण है, और आपके पास कम से कम एक साफ डिज़ाइन होगा जिसे आप अपेक्षाकृत आसानी से अनुकूलित कर सकते हैं। –