我现在正在使用Qt。
我写了一个C ++类 A ,其中有一些公共函数。现在,我正在编写一个Qt类 B ,它具有 QObject 和 A 的多个继承权。
我想将 A 中的公共功能更改为 B 中的公共广告位。
可以吗?
答案 0 :(得分:1)
您可以通过在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。