对不起,奇怪的标题,如果您能想到一个,请随时提出一个更好的标题。
这是我的问题。
我有一个看起来像这样的结构:
QObject -> MyBase -> MyDerived
然后我有一个函数,它将任何派生类型作为 QPointer;
void function(QPointer<MyBase> base) {
...
}
现在的问题是我不能传递QPointer<MyDerived>
给这个函数,如果我使用标准指针的话。我是否必须强制转换此对象以使其适合该功能?还是我应该只使用普通指针?
另外,当您分配失败的对象时,有人知道标准行为吗?您应该总是在 try-block 中执行此操作,还是将其包装在某些东西中以检查它是否为空?我阅读了 Qt 文档,他们说如果分配失败,他们的大多数类都会返回空值。该陈述何时为真,如果我不想使用 try-catch,我该怎么办?