mentre la revisione di un codice C++ Qt mi sono imbattuto in questo:Segnale Qt virtuale?
class Foo
{
Q_OBJECT
signals:
virtual void someSignal(const QString& str, int n)
{
Q_UNUSED(str);
Q_UNUSED(n);
}
...
};
Ora, segnali Qt non possono avere un corpo così Mi sorprende questo ancora compilazione (forse perché il corpo è effettivamente vuoto). Inoltre, non vedo il punto di rendere virtuale un segnale come ... non può avere un corpo quindi come può essere ignorato?
Mi manca qualcosa qui o si tratta di un odore di codice valido?
Può compilare, ma è ancora una violazione ODR: la funzione ha due corpi, uno nell'intestazione e uno nel cpp emesso dal moc. – ybungalobill