Colección de citas famosas - Slogan de motivación - C++ respecto al problema de conversión de punteros de clase

C++ respecto al problema de conversión de punteros de clase

Las clases derivadas se pueden convertir en clases base, porque la clase derivada en sí tiene miembros de la clase base, por lo que no es necesario convertirlas, razón por la cual los punteros y referencias de las clases derivadas se pueden convertir en clases base. Los punteros y referencias de las clases base solo pueden acceder a miembros de la clase base, es decir, conversión ascendente.

clase Jugador

clase GamePlayer : jugador público

GamePlayer* pGamePlayer=new GamePlayer();

Player* pPlayer=pGamePlayer;

Pero lo contrario no es posible, porque la clase base solo tiene sus propios miembros y ningún miembro de la clase derivada, por lo que no es posible realizar una conversión descendente.

Pero GamePlayer* pGamePlayer = (GamePlayer*)pPlayer, aunque este método se puede compilar y pasar, es peligroso usarlo más adelante y es muy propenso a errores1