1

我有以下代码片段:

    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;

但它给出了错误:

在函数“int main()”中:38:13:错误:聚合“main()::X x”类型不完整,无法定义

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

这里有什么问题??

我是不是误会了什么??

4

0 回答 0