我想在我的项目类“屏幕”创建,“图形”,“字体”和“环境”,但是当我键入这些名称并回车,我得到的消息:“屏幕”被保留类名称或“环境”是保留的类名称。我不想制作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