Ich habe eine Basisklasse und abgeleitete Klasse, zB:entgegengesetzte Operation dynamic_cast
class Base {
public:
Base();
virtual doSomthing();
};
class Derivative : class Base {
public:
Derivative();
virtual doSomthing();
};
Ich weiß, dass, wenn ich zur Laufzeit vom Vater auf den Sohn ändern möchten werde ich tun
Derivative& newDer = dynamic_cast<Derivative&>(baseInstance)
meine Frage ist, wie ich die umgekehrte Operation machen kann - Wechsel vom Sohn zum Vater?
Es ist kein spezieller Cast-Vorgang erforderlich. Der Compiler löst das automatisch auf. – user0042
Was ist der Grund, warum Sie dies tun müssen, eine abgeleitete Klasse hat alle Eigenschaften ihrer Basis. Und normalerweise gibt es eine implizite Umwandlung von abgeleitet zu basisch, die während der Kompilierung stattfindet, wenn Sie einen Zeiger oder eine Referenz auf eine Basisklasse erstellen, aber eine abgeleitete Klasse zuweisen. – Carl
Sie können einfach zuweisen. Ein Derivat ** ist eine ** Base. –