可能重複:
Circular Dependency with forward declaration error提前定義
我有兩個文件,一個定義結構(這裏:端口),另一種是定義一個類(這裏:設備)。由於類使用這些結構作爲端口,因此它們需要鏈接到類,最好是通過指針。但是如果設備類沒有被定義,我該如何創建這個指針呢?
這大概就是我想要的代碼看起來像......
backbone.h:
typedef struct aPort {
std::string portName;
Device *ptrDeviceThatOwnsPort;
} port;
device.h中:
#include "backbone.h"
class Device {
}
...但是這明顯會在backbone.h中拋出一個錯誤,說設備尚未定義。我嘗試在typedef的前面簡單地在骨幹頭文件中包含設備頭文件,但這不起作用,因爲每個頭文件都依賴於另一個頭文件。在我讀過的地方,在Objectve-C中,有一些沿着「超前類定義」的說法(在Obj-C中很久沒有編碼了),那麼C++中有類似的東西嗎?還是有更好的解決方案來解決我的問題?
任何幫助是非常歡迎和提前感謝。
從我讀過的其他線程,我想你只需要在backbone.h – enhzflep
這有重複噸的單詞「設備」前添加「類」的關鍵字,我只是增加了一個possiblility。 –
這是正確的。它被稱爲前向聲明,我在發佈這個問題後兩分鐘就發現了這個詞。您的答案因此,對於這個遺憾,但許多感謝=] –