我觉得是A选项
我想是因为没有指定哪个X1X1{}       
   class X2 
      { 
            X1 m = new X1(); 
      }
而这里不知是选用A还是B的X1(),是这样的吗?请问谁有规则说明的教材讲解?

解决方案 »

  1.   

    应该是a吧!
    namespace是c++的东西吧,java中使用package来防止命名冲突的!
    a选项中两个相同的class X1由于分别存在于不同的命名空间中因此得到了区分,现在你在c中将他们同时引入,即在c中这两个都是可见的,你声明的一个对象编译器不知道到底是哪一个!这应该叫做歧义吧?
    呵呵,不知对错!