1.函数重载
1.1函数重载概念
1.参数类型不同
2、参数个数不同
3.参数类型顺序不同
注意:只要满足上面三种中的一种就构成了函数重载,前提条件是要在同一作用域中
以上三种实例都是在全局域中,还有在同一个命名空间中,请看下面实例
1.2C++支持函数重载的原理--名字修饰(这里只做粗略的解释)
在C/C++中,一个程序要运行起来,要经历以下几个阶段:预处理、编译、汇编、链接
预处理:将.c/.cpp和.h为后缀的文件预处理为.i为后缀的中间文件(主要就是展开头文件、宏替换、条件编译、删除注释...)
编译:编译过程就是将预处理后的文件进行⼀系列的:词法分析、语法分析、语义分析及优化,⽣成相应的汇编代码文件 .s为后缀的文件
汇编:把汇编代码转成二进制机器码 .o/.obj为后缀的目标文件
链接:最后链接成.exe为后缀的可执行程序
找函数定义的这个过程中,是通过函数名去找
链接时:
C语言:是直接用函数名字去查找,不支持重载(当两个函数名相同,不知道是哪个)
C++: 是直接用修饰后的函数名字去查找,就可以支持重载。(当两个函数名相同,但函数的形参列表(参数个数 或 类型 或 类型顺序)不同,修饰后的函数名就不同,就能够找到相应的函数)
这个知道结论就行,我只是了解一部分,讲不太清楚
2.引用
2.1引用的概念
a和b 是使用同一块空间,b的值改变a的值也相应的改变
引用类型必须和引用实体是同种类型
2.2引用特性
2.3常引用
再此之前得先知道const这个关键字用法
const修饰指针变量的时候 :
• const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。 但是指针变量本⾝的内容可变。
• const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的内容不能修改,但是指针指 向的内容,可以通过指针改变。
了解了相关知识,现在开始常引用