我在审核一些Qt C++代码时发现了这个:
class Foo
{
Q_OBJECT
signals:
virtual void someSignal(const QString& str, int n)
{
Q_UNUSED(str);
Q_UNUSED(n);
}
...
};
现在,Qt信号不能有函数体,所以我很惊讶这个代码甚至可以编译通过(也许是因为函数体实际上是空的)。我还看不出将信号定义为虚函数的意义在哪里,因为它没有函数体,那么如何重写它呢?
我是否遗漏了什么,或者这是一种有效的代码坏味道?