C++函数重载

基本概念

在C++中允许使用函数重载(函数多态)。简单来说函数重载类似于我们平时所说的多义词。既能够使用多个同名函数,只要他们拥有不同的特征标(指函数的参数列表,包括参数数目、类型和排列顺序)。通过函数重载可以用使用同一个函数名来实现多个功能。

下面列举几种可以使用函数重载的情况
eg0:

void print(int x);
void print(const int x);//可以重载
void print(long x); //可以重载,因为参数类型不同
void print(int x,char y);//可以重载,因为参数数目不同
void print(char x,int y);//可以重载,因为参数顺序不同

不能对函数进行重载的情况
eg1:

void print(int x);
void print(int & x);//类型引用和原类型视为同一个特征标,因此不能对函数进行重载

eg2:

int print(int x);
long print(int x);//返回类型不同,特征标相同,不能对函数进行重载

编译器对函数原型的选择

对于以下三个函数原型

void print(short x);//函数1
void print(long x);//函数2
void print(int x,char y);//函数3

使用重载函数时,编译器根据传递给函数的参数来决定调用哪个函数原型。

print(1);//调用函数1
print(long(2));//调用函数2
print(3,'x');//调用函数3

如果出现参数和所有函数原型都不匹配的情况,会在不引起混乱的情况下进行强制转换

print(char 'x',char y);//调用函数3

如果有多种转换方式对传入的参数可以使用,将会引起混乱,在这种情况下编译将报错

print(char x);//错误,编译器无法判断将调用函数1还是函数2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 函数重载:一个或者多个函数,名字相同,然而参数个数或者参数类型不相同,这叫做函数的重载。 举例: 函数重载使得函数...
    Mitchell阅读 228评论 0 0
  • C++运算符重载-下篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 1,551评论 0 49
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,697评论 1 51
  • 家乡的泪水 作者:雨涵冷妍 时光在岁月里静静的流淌 家乡的小河不知去向 那时的河塘呦 时常传来跳河抓鱼和洗澡的欢唱...
    雨涵冷妍阅读 196评论 0 0
  • 最近加班中,小忙,本来跟俩孩子就是聚少离多,这几天就更揪心,大宝跟小宝最近貌似合作的不是很愉快,每次回家都...
    空中的云阅读 263评论 0 0

友情链接更多精彩内容