私は今Qtを使用しています。
私は C++ クラスAを作成しましたが、その中にいくつかのパブリック関数があります。そして今、私はQObjectとA の両方から複数の継承を持つQt クラスBを書いています。
そして、 A の1 つのパブリック関数をBのパブリック スロットに変更したいと考えています。
それは可能ですか?
でスロットを作成し、そこにある の関数にB
委譲するだけでそれを行うことができます。
次に例を示します。A
#include <QtCore>
class A {
public:
A() {}
void foo() { qDebug() << "In A::foo()"; }
};
class B: public QObject, public A {
Q_OBJECT
public:
B(QObject *parent=0): QObject(parent), A() {
connect(this, SIGNAL(fire()), this, SLOT(foo()));
}
public slots:
void foo() {
qDebug() << "In slot B::foo()";
A::foo();
}
signals:
void fire();
public:
void test() { emit fire(); }
};
クラスA
は Qt を「認識する」必要はまったくありません。