使用Elaborated Type Specifier创建隐藏类

时间:2016-04-07 16:21:33

标签: c++ using-declaration

我有以下代码段:

    namespace A {
      class X { 
          X()
          {
              std::cout<< " I am here in Constructor";      
          }

          };
    }
    namespace B 
    {

      void X(int)
      {

         std::cout << " I am in a function"; 

      };
    }
    using A::X;
    using B::X;

    void f() {
      X(1);   //Will call B::X(int) func          
    }


    int main()
    {

        f();  
        class X x;
        return 0;
    }

以下语句根据第3.3.10节隐藏了A :: X类

using A::X;
using B::X

但是应该使用Elaborated类型说明符访问类,以下语句应该完美地创建一个对象:

class X x;

但它给出了错误:

  

在函数&#39; int main()&#39;:38:13:错误:聚合&#39; main():: X x&#39;具有   不完整的类型,无法定义

现场演示 - http://cpp.sh/4bm4

这里有什么问题?

我误解了什么吗?

0 个答案:

没有答案
相关问题