我想在我的項目類「屏幕」創建,「圖形」,「字體」和「環境」,但是當我鍵入這些名稱並回車,我得到的消息:「屏幕」被保留類名稱或「環境」是保留的類名稱。我不想製作CScreen或ScreenC或類似的東西:/我有Visual Stuido 2010.有什麼方法可以解決這個問題嗎?保留類名的Visual C++
回答
你要麼需要完全不#include
這些類到你的項目或做一個命名空間的類,然後當你需要解決使用該命名空間。
如果您希望其他程序員使用您的代碼,他們可能會對您重複使用他們已知的類的名稱感到困惑,所以最好爲您的類提供一個前綴,可能表示項目名稱。
我認爲使用的命名空間就是答案。
你說的「我型這些名字和回車鍵」是什麼意思?這是類嚮導的消息?在這種情況下,只需手動創建h和cpp文件。我不知道任何不允許將這些名稱用於類的C++功能。當然,在名稱衝突的情況下,使用名稱空間。
我找到解決方法:我可以單獨添加Graphics.cpp和Graphics.h,Environment.cpp和.. etc:/但我仍然不知道爲什麼我不能使用「添加類」:/
這是Visual Studio中的一個錯誤。微軟VS 2010產品認爲有很多名字是保留的,因爲微軟的其他產品使用該名稱。然而,你顯然不會被迫使用那些其他的微軟產品,因爲這些不是C++保留名字,這是一個錯誤,應該修復。只有當您包含已使用名稱的內容時,才應將其報告爲名稱衝突。我也看到編譯器在純C++項目(不包括MFC,ATL等)上爲「模塊」執行此操作。
在此期間,使用添加新項選項,並手動創建標頭和實現。其他人提到名稱很重要,這是真的,但我不明白他們爲什麼會用這些名稱來阻止你使用諸如屏幕,圖形,字體等名稱。良好的名字應該易於使用,並且這些名稱是完全描述性的。絕對不要試圖通過在詞庫中尋找不常見的單詞來模糊含義。另外,不要嘗試爲你的類名稱添加前綴 - 當你創建一個將被其他人重用的庫時,命名空間是正確的工具。前綴是15年前使用的舊工具,當名稱空間尚未添加到語言中時。
正如其他人所說,這是Visual Studio的阻止您使用的名稱,沒有很好的理由。
,繞過這一限制,同時仍然使用最簡單的方法「添加 - >類...」對話框是
- 類型稍有不同的類名在「類名稱:」框(說「Screen_」而不是「Screen」)
- 在對話框中手動編輯「.h file:」和「.cpp file:」下的文件名,使它們爲Screen.h和Screen.cpp
- 點擊「完成」創建類文件(文件名將是正確的,但實際類將是Screen_)
- 手動編輯它的文件中的文本,將「Screen_」更改爲「Screen」
- 1. Proguard保留類名?
- 2. 保留類名在Groovy
- 3. C#跨類保留變量
- 4. Objective C命名機制保留/釋放
- 5. foreach:保留名稱
- 6. MySQL保留列名
- 7. sortBy保留鍵名
- 8. Python的保留,從名單
- 9. 作爲名稱空間和類名的PHP保留字
- 10. C++對象保留?
- 11. 保留與objective-c
- 12. C++保留字作爲C中的函數指針名稱struct
- 13. 類保留計數
- 14. Proguard保留R類
- 15. Objective-C的保留澄清
- 16. 在返回C#後保留C++類的狀態
- 17. ProGuard保留類名稱,但更改包名稱
- 18. 類不保留受保護的值
- 19. logrotate保留舊文件名
- 20. 「html」不是保留名稱
- 21. maven attach-artifact - 保留原名
- 22. Oracle:按保留名排序
- 23. django不保留文件名
- 24. '別名'是保留字嗎?
- 25. 訪問VBA保留字「名」
- 26. 保留文件名Ghostscript
- 27. File.copyTo保留舊文件名
- 28. 「login.ini」是保留名稱嗎?
- 29. 如何在Visual Studio C中保留變量sharp
- 30. Visual C#2010 Express在調試後保留文件句柄
Visual Studio 8允許它,因此可能回到VC8可能是一個選項! – DumbCoder 2010-08-24 12:33:42
鍵入您的代碼而不是使用嚮導。或者使用同義詞庫。 – 2010-08-24 12:59:41
你做了什麼樣的項目?你是如何嘗試創建這些類的?這些名稱在VS2010的C++實現中都沒有保留。 – jalf 2010-08-24 14:12:40