与LSGO一起学“第2章 做一个简短的C++程序(2.5 重名问题)”

2.5 重名问题

上一节通过讲解iostream与iostream.h的区别引出了标准命名空间std,又从标准命名空间了解到所有的标准库函数都在标准命名空间std中定义,而C++之所以引入命名空间这个概念,是为了避免重名问题,比如说避免重复的函数名或者变量名所引起的冲突。

 

程序演示:

#include

namespace a

{

    int b=5;

}

namespace c

{

    int b=8;

}

int main()

{

    using namespace a;

    using namespace c;

 

    int b=9;

        std::cout<

       //std::cout<

    return 0;

}

 

    using namespace a;

    using namespace c;

    int b=9;

这样我们就有了三个名字为b的变量名,但是它们的值都是不一样的。

假如我们不采用命名空间的话,显然我们是不能这么定义的:

int b = 5;

int b = 8;

int b = 9;

 

但是假如程序很大,而且不是一个人所写的时候,这样的情况会出现很多,C++的解决方法是采用命名空间,本节的程序采用了命名空间后,三个同名的变量b由于处于不同的命名空间中,因此它们不会产生冲突。

 

    //int b=9;

       std::cout<

b这个符号引起了歧义。

编译器不知该输出哪个b。

因此终止编译并显示一条错误信息。

 

关于命名空间的具体作用在第二十二章“命名空间”将会有更详细的介绍,这里只需了解即可。


你可能感兴趣的:(C++)