声明对象时,如果不明确,如何指定无名称
Posted
技术标签:
【中文标题】声明对象时,如果不明确,如何指定无名称【英文标题】:when declaring an object how do you specify the no name if it's ambigous 【发布时间】:2011-01-20 16:58:49 【问题描述】:我有一个模棱两可的变量声明,例如:
Class myClass;
blah.h : error C2872: 'Class ' : ambiguous symbol
could be 'foo.h(30) : Class '
or 'foo2.h(106) : MyNamespace::Class '
如何将变量 myClass 明确声明为 foo.h 中声明的没有命名空间的前一个类?
提前致谢!
【问题讨论】:
【参考方案1】:您可以使用始终以 :: 开头的全限定类名
::Class myClass;
【讨论】:
【参考方案2】:如果你不使用会更好
using namespace myNamespace;
但是你从那个命名空间中获取了合格的东西
【讨论】:
+1,或者至少在本地使用它或using myNamespace::someSpecificFeature
。
+1 即使我偶尔使用using namespace
直到发生这种冲突——此时我切换。【参考方案3】:
::Class 意味着根本没有命名空间。
【讨论】:
更准确地说,它意味着来自全局命名空间的类。范围解析运算符 :: 之前的空名称是全局命名空间的名称。以上是关于声明对象时,如果不明确,如何指定无名称的主要内容,如果未能解决你的问题,请参考以下文章