我在程序中使用了observer-observable模式。一切工作之前,我不得不稍微更改代碼。如果是準確的,我改變IObserver類的繼承 - 現在它繼承自QObject:因爲訪問deleteLater()方法而導致的QObject的多重繼承
class IObserver : public QObject
{
...
我這樣做是因爲只有一件事 - 我需要deleteLater()方法以觀察員使用,所以我會能夠調用IObserver的虛函數deinitialization()的實現。因此我可以標準化每個IObserver消息處理程序。
問題是,我已經在某些Observer類中繼承了QObject(間接)。像MainForm或AboutDialog一樣。一切都很好,直到我嘗試在AboutDialog類中調用「connect」方法。
我該怎麼辦?我真的需要這個deleteLater()方法,因爲我不能在IObserver代碼中使用「delete this」 - 這將調用IObserver析構函數,而不是MainForm或Storage類。
謝謝。
也許在這裏提示:[http://stackoverflow.com/questions/3259728/using-qt-signals-and-slots-with-multiple-inheritance](http://stackoverflow.com/questions/3259728/使用-qt-signals-and-slots-with-multiple-inheritance) – jbh