2010-08-24 32 views
5

我想在我的項目類「屏幕」創建,「圖形」,「字體」和「環境」,但是當我鍵入這些名稱並回車,我得到的消息:「屏幕」被保留類名稱或「環境」是保留的類名稱。我不想製作CScreen或ScreenC或類似的東西:/我有Visual Stuido 2010.有什麼方法可以解決這個問題嗎?保留類名的Visual C++

+0

Visual Studio 8允許它,因此可能回到VC8可能是一個選項! – DumbCoder 2010-08-24 12:33:42

+6

鍵入您的代碼而不是使用嚮導。或者使用同義詞庫。 – 2010-08-24 12:59:41

+0

你做了什麼樣的項目?你是如何嘗試創建這些類的?這些名稱在VS2010的C++實現中都沒有保留。 – jalf 2010-08-24 14:12:40

回答

0

你要麼需要完全不#include這些類到你的項目或做一個命名空間的類,然後當你需要解決使用該命名空間。

如果您希望其他程序員使用您的代碼,他們可能會對您重複使用他們已知的類的名稱感到困惑,所以最好爲您的類提供一個前綴,可能表示項目名稱。

9

我認爲使用的命名空間就是答案。

1

你說的「我型這些名字和回車鍵」是什麼意思?這是類嚮導的消息?在這種情況下,只需手動創建h和cpp文件。我不知道任何不允許將這些名稱用於類的C++功能。當然,在名稱衝突的情況下,使用名稱空間。

0

我找到解決方法:我可以單獨添加Graphics.cpp和Graphics.h,Environment.cpp和.. etc:/但我仍然不知道爲什麼我不能使用「添加類」:/

+0

你真的需要研究命名空間,他們是答案。 – JustBoo 2010-08-24 12:53:43

+0

爲什麼命名空間?看http://img814.imageshack.us/i/screenshotec.png/我不寫這些文件中的任何代碼。 – PiTeReK 2010-08-24 13:00:45

+0

我相信IDE本身阻止你使用這些名字。現在看起來似乎並不重要,但在「公司」項目中,文件名有一種永不「死亡」和傳播的方式。你永遠和他們一起生活。「我們的名字是重要的。 – JustBoo 2010-08-24 13:25:13

4

這是Visual Studio中的一個錯誤。微軟VS 2010產品認爲有很多名字是保留的,因爲微軟的其他產品使用該名稱。然而,你顯然不會被迫使用那些其他的微軟產品,因爲這些不是C++保留名字,這是一個錯誤,應該修復。只有當您包含已使用名稱的內容時,才應將其報告爲名稱衝突。我也看到編譯器在純C++項目(不包括MFC,ATL等)上爲「模塊」執行此操作。

在此期間,使用添加新項選項,並手動創建標頭和實現。其他人提到名稱很重要,這是真的,但我不明白他們爲什麼會用這些名稱來阻止你使用諸如屏幕,圖形,字體等名稱。良好的名字應該易於使用,並且這些名稱是完全描述性的。絕對不要試圖通過在詞庫中尋找不常見的單詞來模糊含義。另外,不要嘗試爲你的類名稱添加前綴 - 當你創建一個將被其他人重用的庫時,命名空間是正確的工具。前綴是15年前使用的舊工具,當名稱空間尚未添加到語言中時。

2

正如其他人所說,這是Visual Studio的阻止您使用的名稱,沒有很好的理由。

,繞過這一限制,同時仍然使用最簡單的方法「添加 - >類...」對話框是

  1. 類型稍有不同的類名在「類名稱:」框(說「Screen_」而不是「Screen」)
  2. 在對話框中手動編輯「.h file:」和「.cpp file:」下的文件名,使它們爲Screen.h和Screen.cpp
  3. 點擊「完成」創建類文件(文件名將是正確的,但實際類將是Screen_)
  4. 手動編輯它的文件中的文本,將「Screen_」更改爲「Screen」