美文网首页
C++函数重载

C++函数重载

作者: 林聪色 | 来源:发表于2016-10-30 16:50 被阅读0次

基本概念

在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

相关文章

  • 2.C++对C的扩展

    重载(overload) C++中,引用了函数重载的概念,函数名同名,参数列表不同形成重载。重载规则: 函数名相同...

  • Vue3源码中的TypeScript重载函数的作用

    TypeScript重载函数的作用案例 C++中的一个概念(百度百科): 函数重载一般指重载函数。 重载函数是函数...

  • 30小时快速精通C++拾遗

    C语言不支持重载,为什么C++支持重载? C语言不支持函数重载,编译时函数名加上_或者其他标识C++为什么能够重载...

  • C++运算符重载

    C++运算符重载的实质:运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够...

  • 1.2.15_C++ 关系运算符重载

    C++ 重载运算符和重载函数 C++ 语言支持各种关系运算符( < 、 > 、 <= 、 >= 、 == 等等),...

  • Callback / Callable 类型

    重载函数,和php的伪重载函数 重载函数a. c++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的...

  • C++基础语法-重载、extern

    函数重载 今天我们来深入学习下C++的基础语法函数重载。函数重载定义:只要函数名相同,参数个数不同,参数类型不同,...

  • C++ 重载 [] = == !=

    一 重载 [] = == != 1.1 重载[] C++ 规定,下标运算符[ ]必须以成员函数的形式进行重载。该重...

  • 2020-07-06----《C++类的学习》

    函数重载:同名不同参。 C++类的特点:封装、继承、多态。 //多态与函数重载是啥关系? 虚函数:和软件架构相关 ...

  • C语言到C++(4) - 重载

    C++中新增了重载功能,重载分为两部分,函数重载和运算符重载。 1. 函数重载 在C语言编程中,我们经常遇到一组函...

网友评论

      本文标题:C++函数重载

      本文链接:https://www.haomeiwen.com/subject/mfkuuttx.html