कहते हैं कि हम शुद्ध आभासी तरीके (एक अंतरफलक) के साथ एक सार आधार वर्ग IBase
है के रूप में एक समारोह लेने आधार वर्ग के संदर्भ द्वारा व्युत्पन्न वर्ग पारित करने के लिए यह संभव है।एक पैरामीटर
फिर हम बेस क्लास से CFoo
, CFoo2
प्राप्त करते हैं।
और हम एक समारोह को पता है कि कैसे घोषित के साथ काम करना है।
Foo(IBase *input);
सामान्य परिदृश्य इन मामलों में इस तरह है:
IBase *ptr = static_cast<IBase*>(new CFoo("abc"));
Foo(ptr);
delete ptr;
लेकिन सूचक प्रबंधन से परहेज किया जाना करने के लिए बेहतर है, इसलिए वहाँ इस तरह के परिदृश्य में संदर्भ का उपयोग करने के लिए एक तरीका है?
CFoo inst("abc");
Foo(inst);
जहां Foo
है:
Foo(IBase &input);
हां, आपके प्रश्न में आपके पास क्या आदर्श है। – ildjarn
हां; polymorphism दोनों पॉइंटर्स और संदर्भों के लिए काम करता है। और कास्टिंग बंद करो, कृपया। हम हॉलीवुड में नहीं हैं। –