本文共 1084 字,大约阅读时间需要 3 分钟。
C++总计63个关键字,C语言32个关键字
![]()
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作
用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字 污染,namespace关键字的出现就是针对这种问题的.
代码演示:
//1.用namespace 定义一个命名空间(普通)namespace N1 // N1 时该命名空间的名称{ int a;//可以是变量 int Add(int left,int right)//也可以是函数 { return left+right; }}//2.命名空间可以嵌套namespace N2{ int a; namespace N3 { int b; }}//3.同一个工程中允许存在多个相同名称的明明空间,编译器最后会合成同一个。
namepace bit{ int a=0; int b=0;}
三种使用方式:
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该
默认值,否则使用指定的实参。
void TestFunc(int a = 0) { cout<<
1.全缺省参数
2.半缺省参数所以参数都指定默认值
半缺省参数必须从右往左给出
注意:缺省参数不能在函数生命和定义中同时出现 --------- 缺省值必须是常量或全局变量
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的
形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题
要讲这个问题就必须了解在C/C++中,一个成需要运行要经历以下几个阶段:预处理,编译,汇编,链接。
因为C语言是直接拿函数名去链接
C语言如果是同名函数,链接时无法辨别 链接时报错:error LNK2019:
而C++中,只要参数不同,修饰出来的名字就不同,那么就不会冲突。
最后在说一下函数修饰名规则: (Linux下)
_Z[函数名长度(数字)]+函数名+类型首字母
具体解释一下:
比如:int Add(int a,int b){ return a+b;}
转载地址:http://xyzj.baihongyu.com/