C++命名空间

目录

一、引入缘故

二、域

三、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

 cin>>流提取运算符

int main()
{
	int x = 10;
	
	
	std::cin >> x;

	return 0;
}

  • 28
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值