cpp拾遗——引用,函数重载

1. 引用

1.1 本质

引用的本质是指针

int &a = b;
a = 10;
// 编译器会处理为
int const *a = &b;
*a = 10;

由于引用,所以可以链式编程,即返回引用。

1.2 引用和指针

引用用于替换一重指针
没有引用的引用,没有指向引用的指针,
有对指针进行引用。

int *p;
int
 *(&a) = p;

1.3 引用和函数

函数返回引用,注意引用为指针,所以注意指向的空间是否被释放。
函数返回引用,所以可以链式编程,如

func(1) = func(2) = func(3);

2. 函数重载

2.1 函数重载的条件

函数名相同,参数个数不同,类型不同,顺序不同

2.2 函数重载的本质

编译阶段,编译器构建函数表,根据函数定义,重新命名绑定函数名称符号,并根据函数调用时的传参,绑定调用地址。

int func();
int func(int a);
int func(char a);
// c++编译器会将函数重新命名
int func_a();
int func_b(int a);
int func_c(char a);

2.3 函数重载和默认参数

默认函数只能从右往左写
函数重载和默认参数连用时可能出现二义性

posted on 2022-05-10 21:49  开心种树  阅读(68)  评论(0编辑  收藏  举报