struct Switch : State {
int a;
};
QSharedPointer <State> myState=QSharedPointer <State>(new Switch);
QSharedPointer <Switch> mySwitchTest= ??? myState;
我应该把什么放在?
使用
qSharedPointerCast()
QSharedPointer <Switch> mySwitchTest= qSharedPointerCast<Switch>(myState);
或在智能指针上打电话
staticCast()
:
QSharedPointer <Switch> mySwitchTest= myState.staticCast<Switch>();
版本基本上等同于在原始指针上进行
static_cast
。
对于动态演员,使用qsharedpointerdynamiccast:
class Derived : public Base { ... };
QSharedPointer<Base> base...
QSharedPointer<Derived> derived = qSharedPointerDynamicCast<Derived>( base );
也有static_cast的等效物(如Silico所示),Qobject_cast和const_cast。选择你的毒药