【问题标题】: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 中声明的没有命名空间的前一个类?

提前致谢!

【问题讨论】:

    标签: c++ class variables namespaces


    【解决方案1】:

    您可以使用始终以 :: 开头的全限定类名

    ::Class myClass;
    

    【讨论】:

      【解决方案2】:

      如果你不使用会更好

      using namespace myNamespace;
      

      但是你从那个命名空间中获取了合格的东西

      【讨论】:

      • +1,或者至少在本地使用它或using myNamespace::someSpecificFeature
      • +1 即使我偶尔使用using namespace 直到发生这种冲突——此时我切换。
      【解决方案3】:

      ::Class 意味着根本没有命名空间。

      【讨论】:

      • 更准确地说,它意味着来自全局命名空间的类。范围解析运算符 :: 之前的空名称是全局命名空间的名称。
      猜你喜欢
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      相关资源
      最近更新 更多