static_cast ejemplo dynamic_cast conversion castear cast c++ qt polymorphism type-conversion casting

ejemplo - int casting c++



Polimórfico QSharedPointer (2)

Para un lanzamiento dinámico, use qSharedPointerDynamicCast:

class Derived : public Base { ... }; QSharedPointer<Base> base... QSharedPointer<Derived> derived = qSharedPointerDynamicCast<Derived>( base );

También hay equivalentes para static_cast (como se muestra en silico), qobject_cast y const_cast. Elige tu veneno.

Estoy tratando de usar QSharedPointer en mi estructura polimórfica, pero no pude encontrar la sintaxis correcta para convertir el puntero de la clase base al puntero de la clase derivada.

struct Switch : State { int a; }; QSharedPointer <State> myState=QSharedPointer <State>(new Switch); QSharedPointer <Switch> mySwitchTest= ??? myState;

¿Qué debo poner en el lugar de ???


Utilice qSharedPointerCast() :

QSharedPointer <Switch> mySwitchTest= qSharedPointerCast<Switch>(myState);

O llame a staticCast() en el puntero inteligente:

QSharedPointer <Switch> mySwitchTest= myState.staticCast<Switch>();

Ambas versiones son básicamente equivalentes a hacer static_cast en punteros en bruto.