QtWebKit测试例子学习-1 多重继承

 

在测试代码中, 在 ./src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp 中看到一个:


class EventSpy : public QObject, public QList<QEvent::Type>
{
    Q_OBJECT
public:
    EventSpy(QObject* objectToSpy)
    {
        objectToSpy->installEventFilter(this);
    }

    virtual bool eventFilter(QObject* receiver, QEvent* event)
    {
        append(event->type());
        return false;
    }
};

 

这个类的作用是记录所有被监听对象发出过的所有事件。

 

要是我来写的话,在没看到这个例子前,肯定会用‘聚合’的方式来实现---也就是声明 class EventSpy : public QObject 并且在类中定义一个 QList<QEvent::Type>成员!

 

这里,用了多重继承,真是恰到好处!

 

 

你可能感兴趣的:(QtWebKit测试例子学习-1 多重继承)