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 函数重载和默认参数
默认函数只能从右往左写
函数重载和默认参数连用时可能出现二义性
分类:
cpp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?