diesen Code Gegeben:Warum ist Base * pd = neu abgeleitet; einen Fehler erzeugen?
class Base{
public:
Base();
virtual ~Base();
};
class Derived: protected Base{
public:
virtual ~Derived();
};
In Haupt Ich versuche, auf diese Weise Basis zuzuordnen abgeleitet:
Base *pd = new Derived;
Warum diese Anweisung einen Fehler zu generieren?
Hier wird new einen Zeiger des Objekttyps zurückgeben, und wir können immer einen abgeleiteten Zeiger einer Basis zuordnen. Korrigiere mich, wenn ich falsch liege.
Kein Code ?! Es kann eine beliebige Anzahl von Fehlern geben ... –
Wahrscheinlich, weil Sie nicht erklärten 'Abgeleitet: Base' – BoltClock
Dies sollte funktionieren, ja. Die offensichtlichste Lösung ist die von @BoltClock. Abgeleitet muss Base an erster Stelle erben. Wenn dies nicht der Fall ist, bieten Sie bitte einen Code an, der es jemandem ermöglicht, das Problem zu diagnostizieren. Auch, was ist die Fehlermeldung? – mingos