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.