C++的函数重载和引用

本文介绍了C++中的函数重载概念,允许在同一作用域内使用相同名称但参数不同的函数。通过示例展示了如何定义和调用重载函数,并讨论了在调用时可能遇到的问题。此外,还详细解释了引用的概念,作为已存在变量的别名,强调了引用与指针的区别,如引用必须初始化且不可改变,不存在空引用等特性。最后,对比了引用和指针在实际应用中的异同。
摘要由CSDN通过智能技术生成

函数重载

2.1、什么是函数重载?
定义:其实就是为了方便为了简洁程序,使用同一个名字的函数,就叫做重载,C语言不允许定义同名函数,但是C++可以,而且最重要的是,不看返回值,只看参数的类型,个数.
例:

void f(int a,int b,int c = 1)
{}
void f(int a, int b)
{}

此函数虽然构成重载,但是在调用的时候,如果输入 f(1,2,3)是指定没问题的,它会调用第一个函数,但是当输入 f(1,2)它就不知道调用哪一个会出现错误,因为,编译器不知道是调用第一个函数使得默认c=1,还是调用第二个函数,就只有两个参数.

引用

定义
就是在本来存在的变量前面加一个&
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。

int main()
{
	int a = 10;
	//b是a的别名,b是a的引用
	int& b = a;
	b = 20;//a也就改了
	printf("%d\n",a);//20
}

引用和指针的区别
a:引用必须初始化,必须在定义引用时明确引用是哪个变量或者对象,否则语法错误。指针不是必须初始化,指针不初始化,会指向随机值。
b:引用一旦定义时初始化指定,就不能被修改,指针可以改变指向。
c:引用不能出现空引用,即不存在指向空值的引用,而指针可以指向空
d:一个引用可以看作变量或对象的别名。
e:引用表面是在传值,其本质也是在传地址,只是这个工作由编译器来做,指针也是传地址。
f:函数参数的声明可以为引用或指针类型。
g:可以删除空指针,但不能删除引用,因为引用是别名,删除引用就是删除真实对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值