met*_*dos 16 c++ polymorphism qt casting type-conversion
我试图QSharedPointer在我的多态结构中使用,但我找不到正确的语法将基类的指针转换为派生类的指针.
struct Switch : State {
int a;
};
QSharedPointer <State> myState=QSharedPointer <State>(new Switch);
QSharedPointer <Switch> mySwitchTest= ??? myState;
Run Code Online (Sandbox Code Playgroud)
我应该把它放在什么地方?
In *_*ico 25
QSharedPointer <Switch> mySwitchTest= qSharedPointerCast<Switch>(myState);
Run Code Online (Sandbox Code Playgroud)
或者调用staticCast()智能指针:
QSharedPointer <Switch> mySwitchTest= myState.staticCast<Switch>();
Run Code Online (Sandbox Code Playgroud)
两个版本基本上等同于static_cast对原始指针进行操作.
Fra*_*eld 12
对于动态强制转换,请使用qSharedPointerDynamicCast:
class Derived : public Base { ... };
QSharedPointer<Base> base...
QSharedPointer<Derived> derived = qSharedPointerDynamicCast<Derived>( base );
Run Code Online (Sandbox Code Playgroud)
static_cast(如计算机显示),qobject_cast和const_cast也有等价物.选择你的毒药.
| 归档时间: |
|
| 查看次数: |
9808 次 |
| 最近记录: |