如何识别由于歧义名字而产生错误的代码?
识别由于歧义名字而产生错误的代码。
a. namespace A
{
class X1{}
}
namespace B
{
class X1{}
}
namespace C
{
using A;
using B;
class X2
{
X1 m = new X1();
}
}
b. namespace A
{
class X1{}
}
namespace B
{
namespace B
{
class x1{}
}
}
namespace C
{
using A;
using B;
class X2
{
X1 m = new X1();
}
}
c. namespace A
{
class X1{}
}
namespace B
{
class X2{}
}
namespace C
{
using A;
using B;
class X1{}
}
d. namespace A
{
class X1{}
}
namespace B
{
class X2{}
}
namespace C
{
using A;
using B;
class X3{}
}
-----------------
大侠,请问选哪个选项?
并请详细解答.跪谢.呵呵~~~~
问题点数:0、回复次数:2Top
1 楼pgyssg(breeze)回复于 2005-04-03 23:12:55 得分 0
我觉得是A选项
我想是因为没有指定哪个X1X1{}
class X2
{
X1 m = new X1();
}
而这里不知是选用A还是B的X1(),是这样的吗?
请问谁有规则说明的教材讲解?Top
2 楼zhutouzip(醒了的鸟)回复于 2005-04-03 23:14:32 得分 0
应该是a吧!
namespace是c++的东西吧,java中使用package来防止命名冲突的!
a选项中两个相同的class X1由于分别存在于不同的命名空间中因此得到了区分,现在你在c中将他们同时引入,即在c中这两个都是可见的,你声明的一个对象编译器不知道到底是哪一个!这应该叫做歧义吧?
呵呵,不知对错!Top




