C++ 中命名空间和include区别

2025-03-21 13:54:31
推荐回答(3个)
回答1:

如下:


  1. C++标准里似乎没有别的了。不过很多第三方库会有,比如boost库有boost命名空间,OpenCV库有cv命名空间。

  2. 没有“默认”命名空间,就好像C里没有一样。

  3. 严格说来,语法上没有“库”这个概念。所以“iostream是定义在std空间里”这句说法是不恰当的。只能说iostream这个头文件里定义的类和变量都是std空间里的。

回答2:

  1. C++标准里似乎没有别的了。不过很多第三方库会有,比如boost库有boost命名空间,OpenCV库有cv命名空间

  2. 没有“默认”命名空间,就好像C里没有一样。

  3. 严格说来,语法上没有“库”这个概念。所以“iostream是定义在std空间里”这句说法是不恰当的。只能说iostream这个头文件里定义的类和变量都是std空间里的。

回答3:

IOS流都包含在std命名空间里,加了std命名空间就可以在程序中不用再加::命名空间限定。
如果你只有iostream头文件,则每次使用iostream的函数时需要加上std::命名空间限定(比如std::cout<<"....";)。
C++之所以要把iostream放在std命名空间是防止名字冲突.