C++ 兩個類相互引用

實際工程中兩個類相互引用的情況還是比較多的,其中大致分爲兩種:

1.同一項目下相互引用。

2.不同項目間相互引用。

情況1:

只需要相互包含頭文件就行了,但是要避免重複包含,用#pragma once或者#ifndef都可以。

如果你編譯時仍然發現存在類或者變量常量未定義,請檢查ifndef中的宏是否與其他衝突,或者#include包含頭文件的順序存在問題。

編譯器在編譯代碼時會先把cpp中含有的頭文件都展開,你可以嘗試模擬這一過程檢查爲什麼編譯會報錯。


情況2:

其中一種方法是我之前有介紹過的"C++兩個項目之間相互引用的方法",利用靜態函數指針來反向調用之後編譯的函數,專業點說就是回調函數。

另外一種就是用虛函數來達成這個效果。

父類在編譯順序靠前的項目中定義,子類在編譯順序靠後的項目中定義,那麼只要這個函數是虛函數,就可以利用父類的指針指向子類實體(當然這個指向操作肯定也是在後面項目中執行的,在前面項目中子類的類名都無法編譯通過),並且調用子類的函數。

(快去把面向對象編程的三大特點重新看看)


好,問題解決,可喜可賀可喜可賀。

發佈了55 篇原創文章 · 獲贊 14 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章