Problem mit dem Aufrufen der richtigen virtuellen Funktion aus einem Vector
-
Ich möchte gerne folgendes machen
class A { public: virtual void foo(); }; class B : public A { public: virtual void foo(); }; class C { public: vector<A> blub; };So, jetzt möchte ich das wenn ich in den blub vector ein B Objekt rein tue und foo() aufrufe die foo() Methode von B Aufgerufen wird und nicht von A.
Wenn ich die Threads die ich zu diesem Thema gefunden habe richtig verstanden hab, wo ich mir nicht so sicher bin
, ist das nicht möglich...
Könnt ihr mir sagen wie ich das umgehen kann oder anders realisieren kann ?Ich möchte im Prinzip eine Liste haben wo ich verschiedene Klassen rein tun kann, um dann jeweils die individuell implementierte foo() Methode auf zu rufen...
-
Hallo,
Wenn du einen vector mit Zeigern auf A nimmst, geht das so. Polymorphie funktioniert nur mit Zeigern oder Referenzen.
-
Das des so einfach ist hätte ich jetzt nicht gedacht

Danke für die schnelle Hilfe !