変なタイトルですみません、思いついたらもっといいタイトルを考えてください。
これが私の問題です。
次のような構造があります。
QObject -> MyBase -> MyDerived
次に、派生型のいずれかを QPointer として受け取る関数があります。
void function(QPointer<MyBase> base) {
...
}
QPointer<MyDerived>
問題は、この関数に渡すことができないことです。これは、標準のポインターを使用した場合です。関数に適合させるために、このオブジェクトをキャストする必要がありますか? それとも、通常のポインターを使用する必要がありますか?
また、失敗したオブジェクトを割り当てるときの標準的な動作を知っている人はいますか? これを常にtryブロックで行うか、何かでラップしてnullかどうかを確認する必要がありますか? Qtのドキュメントを読んだところ、割り当てに失敗した場合、ほとんどのクラスがnull値を返すとのことでした。try-catch を使用したくない場合はどうすればよいですか?