C++函数重载

本文详细探讨了C++中的函数重载,从概念引入,解释编译器如何处理命名冲突,深入讲解重载函数的调用匹配原则,并讨论了常量性在函数重载中的作用。
摘要由CSDN通过智能技术生成
1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的方法,这里就不论述了)
2、当我们调用一个重载的函数时,又是如何去解析的?(即怎么知道调用的是哪个函数呢)
这两个问题是任何支持函数重载的语言都必须要解决的问题!带着这两个问题,我们开始本文的探讨。本文的主要内容如下:


1、例子引入(现象)

什么是函数重载(what)?
为什么需要函数重载(why)?

2、编译器如何解决命名冲突的?

函数重载为什么不考虑返回值类型

3、重载函数的调用匹配

模凌两可的情况

4、常量性与函数重载
5、总结



1、例子引入(现象)



1.1、什么是函数重载(what)?


函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。(不能根据返回值区分重载)
重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
看下面的一个例子,来体会一下:实现一个打印函数,既可以打印int型、也可以打印字符串型。在C++中,我们可以这样做:

#include<iostream>
using namespace std; void print(int i)
{
  cout<<"print a integer :"<<i<<endl;
} 
void print(string str)
{
  cout<&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值