struct Base {
int i, j;
};
struct Derived : Base {};
Mit obigem Szenario, wenn wir folgenden:Abgeleitete Klasse hat keine zusätzlichen Datenelemente; Ist es sicher, ein Basisobjekt statisch auf ein abgeleitetes Objekt zu reduzieren?
Base b;
auto& d = static_cast<Derived&>(b);
d.i = 1;
Wird es ein undefiniertes Verhalten sein?
Hinweis: Aus irgendwelchen Gründen kann ich den Code eines Autos nicht bearbeiten erzeugt protobuf Bibliothek Google. Daher erweitern diese Klassen zu meiner benutzerdefinierten Klasse, die mehr Typen & APIs bereitstellt, aber es hat kein zusätzliches Datenelement.
@pSoLT, danke. [Downcasting mit dem Static_cast in C++] (http://stackoverflow.com/q/6322949/514235). Es ist stark verwandt. In diesem Qn werde ich mehr interessiert zu wissen, wenn die Größen möglicherweise gleich sind. Übrigens, wenn jemand das Gefühl hat, dass die akzeptierte Antwort in diesem Post auch dieses Qn bewirtet, dann wird es großartig sein, wenn jemand in leichterer Sprache erklären kann. Ich habe mich gerade verloren, als ich diese Passage aus dem Standard gelesen habe. :-) – iammilind