Jedesmal, wenn ich es immer für Basisklasse namens Draw-Methode aufrufen ...virtuelle Funktion nicht funktioniert
#pragma once
#include <pch.h>
class A
{
public:
A();
virtual void Draw(CanvasDrawingSession^ drawingSession);
};
Klasse B von A abgeleitet
#pragma once
#include <pch.h>
#include <A.h>
class B: public A
{
public:
B();
void Draw(CanvasDrawingSession^ drawingSession);
};
Wenn ich Basisklasse Objekt mit abgeleiteten Klasse Objekt initialisieren A a = B() und Aufruf Draw-Methode - a. Draw() wird immer Draw() von der Basisklasse aufrufen. Was mache ich falsch?
'A a = B()' macht * Objekt-Slicing * und konvertiert im Wesentlichen Ihre 'B' -Instanz in eine' A' -Instanz. Polymorphismus in C++ funktioniert durch * Zeiger * und * Referenzen * auf Basisklassen. –