目录
一、引入缘故
二、域
三、namespace
四、域作用限定域
五、访问命名空间域
一、引入缘故
在c语言中,在大型文件内命名冲突问题是一个比较大的缺陷
一般常见的命名冲突可能是
- 与库函数冲突
- 内容本身相互冲突
于是引入命名空间的概念
二、域
域包括
- 类域
- 命名空间域
- 局部域
- 全局域
三、namespace
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突,冲突包括与库函数的冲突及所在域内部的冲突。使用命名空间的目的是对标识符的名称进行本地化, 以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
四、域作用限定域
::a左边空格访问全局域
N ::a访问N命名空间域
访问时,优先访问局部域,后全局域,未指定访问命名空间域时,默认不访问
五、访问命名空间域
去命名域
- 展开命名域
using namespace xy; using namespace std;
- 指定访问命名空间域
xy::a;
std:C++标准库函数,iostream\list\vector等库函数都在其命名空间内
直接展开命名域有一定风险,尤其是大型项目文件,如果定义同库重名,就会报错,一般大型文件内不直接展开,日常练习可以直接展开,项目推荐指定访问,可以对常用函数进行展开,对个别函数指定访问
#include<iostream> using std::cout;//常用部分展开 using std::endl; namespace xy { int n = 0; } int main() { cout << "1234" << endl; printf("%d", xy::n);//指定访问 }
<<流插入运算符,一行插入多个
endl可以看成与\n作用相同,换行
cout自动识别类型,如果对精度要求比较高,建议使用c语言的语法,eg:%.2f
文章来源:https://www.toymoban.com/news/detail-420043.html
cin>>流提取运算符文章来源地址https://www.toymoban.com/news/detail-420043.html
int main() { int x = 10; std::cin >> x; return 0; }
到了这里,关于C++命名空间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!