15.2.4 using声明带来的多重声明问题(二义性)

    如果using声明使用不当,很容易引起多重声明错误(Multiple Declaration),例如已经定义了全局函数disp,却还使用全局using声明语句“using A:disp”,假设没有屏蔽发生,那么调用disp函数时,编译器不确定是全局函数版本还是A:disp(),会引发多重声明错误。

    变量名同样存在这种问题,假设有两个名称空间A和B中都定义了int型变量num,在程序的某处需要使用num,如下代码所示。


    using A:num; using B:num; num=5;

    则最后一句对num的赋值操作具有二义性,因此应合理使用using声明机制。