【C++入门(一)】
1.关键字
C++总计63个关键字
2.命名空间
在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字
污染,namespace关键字的出现就是针对这种问题的
命名空间三种表达方式
一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中
3.缺省参数
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参
缺省参数的分类
全缺省参数
半缺省参数
注意:
半缺省参数必须从右往左依次来给出,不能间隔着给
缺省参数不能在函数声明和定义中同时出现
扫描二维码关注公众号,回复: 12440809 查看本文章![]()
4.函数重载
概念
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表( 参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题
- 个人理解:函数虽同名,但是多功能,弥补了C语言不能命名同名函数的缺陷
面试题:为什么函数重载C++可以,C语言不可以?(详解)
- 首先一个C/C++程序运行起来要经理以下几个阶段:预处理、编译、汇编、链接
如果只有申明,没有定义,就会找不到
接下来我们在Linux里演示一下
首先写一个C程序
结果是无法编译的
我们再通过objdump -S test1c(查看反汇编命令)
指令可以查看编译过程
如果有同名函数的话,我们就无法知道到底调的是哪一个add函数
我们再写一个C++程序
我们再通过objdump -S test2cpp(查看反汇编命令)
指令可以查看编译过程
总结:只要参数不同,函数出来的名字也不同,自然就不会冲突,在链接的过程中就可以找到