2011-03-11 82 views
2

我一直在與我的編譯器爭鬥太久。 通告中的問題包括重新定義,「缺失」,「之前*「等。如何包含所有內容

這似乎是獲得良好答案的地方。

我如何將所有內容都包含在其他所有內容中,並且永遠不必擔心包含的細微之處? #DEFINE,#pragma,#include或其他任何我需要做的事情,以確保我的項目層次結構的黑暗深處的數據類型不知道什麼是什麼是什麼?

這不是一個巨魔職位,因爲這樣的概念是完全不可想象的,也不會在發怒的時候發佈。 我只是好奇是否存在這種可能性。處理意大利麪包括可能是我必須在C++中處理的最頭痛的問題,擺脫它會顯着增加我的工作流程。

乾杯, 布賴恩

回答

3

在實施頭和夾雜物(.C,的.cpp等)Forward deceleration

+0

優秀的轉發類聲明正是我所需要的。爲了完整起見,我在這裏找到了另一個有用的例子:http://www.java2s.com/Code/Cpp/Class/Classforwarddeclaration.htm將接受這個答案whan stackoverflow讓我。某種計時器不會讓我接受。 – Brian 2011-03-11 01:53:44

0

好問題。我也想知道如何做到這一點。這裏有一些我的技巧:

  1. 圖形文件hirechary結構(哪個文件使用哪個文件)繪製原始概念圖。

  2. 使用以下代碼結構有助於防止重新定義。詳細信息可以在這裏找到。

 
#ifndef MY_CLASS 

#define MY_CLASS 
#endif 

這意味着,如果該文件已經包含了,則不會再次包含。

在每個頭文件的開頭
0

#ifndef __MYHEADER_H__ 
#define __MYHEADER_H__ 
到底

#endif /* __MYHEADER_H__ */ 

能夠避免包含重複的頭文件。如果您使用Visual stuido

,你可以把

#pragma once 

在頭文件的開頭。

順便說一下,您可以使用一些靜態代碼檢查工具來查找這些類型的問題,如lint。