2012-02-08 83 views
2

我有2個文件都包含其他文件,我收到奇怪的錯誤。包括對方的C++頭文件

#ifndef NODE_H 
#define NODE_H 

#include "model.h" 
etc.... 
#endif 

#ifndef MODEL_H 
#define MODEL_H 

#include "Node.h" 
etc.... 
#endif 

這是我正在做的示例代碼。有人可以向我解釋爲什麼這是不可能的或允許的嗎?我該怎麼做才能通過這個問題。

+0

[頭文件之間的循環依賴關係可能重複](http://stackoverflow.com/questions/2089056/cyclic-dependency-between-header-files) – 2012-02-08 10:57:09

回答

5

你有一個circular dependencyNodemodel之間。

爲了解決這個問題,而不是...

#include "Node.h" 

...在model.h,向前聲明...

class Node; 

...這將讓您在您的Modelclass中有Node& node;

反之亦然。

更好......看看你是否可以重新審視你的設計並消除這種循環依賴。

+0

非常感謝! – 2012-02-08 11:03:31