授生素qsharedPointer

问题描述 投票:0回答:2
struct Switch : State { int a; }; QSharedPointer <State> myState=QSharedPointer <State>(new Switch); QSharedPointer <Switch> mySwitchTest= ??? myState;

我应该把什么放在?
    

使用

qSharedPointerCast()

c++ qt polymorphism type-conversion casting
2个回答
27
投票

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。选择你的毒药

13
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.