パラメータのタイプに応じて、 SomeClass::fireSignal メンバー関数から異なるシグナルを発生させる必要があります。私が見る解決策は、Qt メタ システムを使用することです。そのようなタスクのためのより正しい解決策はありますか? 助けてください。前もって感謝します。
class SomeClass : public QObject
{
Q_OBJECT
public:
void fireSignal(BaseClass *param) {
if(param->metaObject->className() == "DerivedClass1") {
emit derivedClass1Signal(param)
}
if(param->metaObject->className() == "SecondDerivedClass") {
emit secondDerivedClassSignal(param)
}
if(param->metaObject->className() == "OtherDerivedClass") {
emit otherDerivedClassSignal(param)
}
}
signals:
void derivedClass1Signal(DerivedClass1 *param);
void secondDerivedClassSignal(SecondDerivedClass *param);
void otherDerivedClassSignal(OtherDerivedClass *param)
};