class B{
private:
int a;
}
class D: public B{
private:
int b;
}
B* b = new B;
Maintenant, pour une raison quelconque, je veux tourb
dans un D*
type d'objet. par exemple. conserver les informations de B et deviennent D avec des informations supplémentaires requises.upcast à l'exécution. (Morphing classe de base pour dériver la classe)
Ce à quoi je pense actuellement est. static_cast pour faire le upcasting. les attributs supplémentaires seront définis sur null ou garbage. puis affectez les attributs supplémentaires manuellement. Mais cela conduit à un risque de pointeur pendante. Si le constructeur de copie n'est pas codé avec suffisamment de soin.
Alors quoi d'autre pourrait être la bonne solution?
et y at-il une solution du Puzzle si nous le pensons d'un point de vue PHP?
Pourquoi voulez-vous faire cela? Il y a probablement une meilleure solution que de convertir un non-'D' en un' D' en castant. –