यहाँ (इस कोड काम नहीं करता है) मैं क्या करने की कोशिश कर रहा हूँ है:एक व्युत्पन्न सी ++ वर्ग आधार सूचक के माध्यम से कैसे क्लोन कर सकता है?
class Base
{
virtual Base *clone() { return new Base(this); }
virtual void ID() { printf("BASE");
};
class Derived : publc Base
{
virtual Base *clone() { return new Derived(this); }
virtual void ID() { printf("DERIVED"); }
}
.
.
Derived d;
Base *bp = &d;
Base *bp2 = bp->clone();
bp2->ID();
मैं क्या चाहते की तरह देखने के लिए "व्युत्पन्न" बाहर मुद्रित है ... मैं क्या मिलता है "आधार "। मैं एक लंबे समय से सी प्रोग्रामर हूं, और सी ++ के साथ काफी अनुभवी हूं ... लेकिन मैं इस के साथ कोई रास्ता नहीं बना रहा हूं ... किसी भी मदद की सराहना की जाएगी।
अधिक कोड दिखा रहा है, विशेष रूप से इस मामले में प्रत्येक वर्ग के सभी निर्माता महत्वपूर्ण हैं। (कुछ को आपके कोड से अनुमानित किया जा सकता है, लेकिन यह हर किसी से अधिक सही उत्तर पाने में मदद करता है ...) – Macke
एचएम। प्रारंभिक कोड में आधार बीपी = और डी था। अब इसे बेस * बीपी = और डी में बदल दिया गया है; – Macke
प्रश्न के लिए प्रासंगिक नहीं है, लेकिन आप कक्षाओं पर आभासी विनाशक भी चाहते हैं। –