雖然審查我碰到這個就一些Qt的C++代碼:虛擬Qt信號?
class Foo
{
Q_OBJECT
signals:
virtual void someSignal(const QString& str, int n)
{
Q_UNUSED(str);
Q_UNUSED(n);
}
...
};
現在,Qt的信號不能有身體,所以我很驚訝這甚至編譯(或許是因爲身體有效地爲空)。我也沒有看到讓虛擬信號變成虛擬的點......它不能有一個身體,所以它怎麼可能被覆蓋?
我在這裏錯過了什麼,或者這是一個有效的代碼氣味?
它可以編譯,但它仍然是一個ODR違規:函數有兩個主體,一個在頭中,另一個在moc發出的cpp中。 – ybungalobill 2015-10-27 12:18:24