声明对象时,如果不明确,如何指定无名称

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 意味着根本没有命名空间。

【讨论】:

更准确地说,它意味着来自全局命名空间的类。范围解析运算符 :: 之前的空名称是全局命名空间的名称。

以上是关于声明对象时,如果不明确,如何指定无名称的主要内容,如果未能解决你的问题,请参考以下文章

如果表单输入没有明确使用它,如何设置Spring Form和Thymeleaf不更改作为模型属性添加的对象的字段?

声明堆栈变量而不指定名称并获取指针

如何获取对象的完整类型名称

第五章 面向对象(基础篇)

继承的总结

将对象绑定到 Web API 端点时指定自定义属性名称