1.命名空间
在c语言中,命名的名字不能和关键字冲突,不能和库函数里的名字冲突,所以在C++中,引入了命名空间。为了防止命名污染,
可以在函数,变量前加上命名空间,命名空间所有内容都局限与该命名空间。
使用方式:
1.当你用库函数的名字时,每次都在前加一个命名空间,例如:std::cout,std::cin。
2.在全局域声明,用using namespace std ,表示所有与库函数相同的名字都不能使用,但这就使命名空间没有用了。
3.在全局域,单独声明一个名字,例如:using std::cout;
2.函数重载
函数重载:使函数的一种特殊情况,C++允许在同一作用域声明几个功能类似的同名函数,这些同名函数的形参链表,常用来
处理实现功能类似数据类型不同的问题。
重点:函数重载必须保证参数列表必须不同。因为编译器底层不是用的函数名,而是经过复杂的修饰,得到一个名字。在C语言中是通过_函数名字来找函数的。
3.引用
引用:引用是已存在变量的别名,编译器不会为它开辟空间的,它和被引用的变量共用一块内存空间。
注意点:引用必须在定义时被初始化。
一个变量可以有多个引用
引用一个实体后再不能引用别的实体
千万不要再返回栈空间上的引用变量,因为当函数生命周期结束时,它就是非法访问了。
传值和传引用
传值是一份参数的临时拷贝,生命周期随函数,而引用不会,也没有开辟空间,所以尽可能的用引用,
引用和指针
引用和指针的效率差不多,但是引用更方便理解,更安全。注意的是引用不能有空指针。本质:其实编译器也是用完成指针的方式去完成的引用的,也就是说他们的汇编代码是差不多的。
4.缺省参数
缺省参数是声明或定义函数是为函数的参数指定一个默认值。在调用该函数时,如果没有指定参数则采用该默认值,否则使用
指定的参数。
重点:半缺省参数必须从有往左依次来给出,不能间隔给。
缺省参数不能在函数声明和定义中同时出现。