C++重载的多义

Posted YuRi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++重载的多义相关的知识,希望对你有一定的参考价值。

重载的条件:函数参数类型和个数不同,返回值不做为考虑。例:

void f(int i);
void f(double i);

一、float和double的情况:

void f(float i);
void f(double i);

如果输入浮点数,不存在多义,将会调用void f(double i),因为:在C++中将浮点数转化为double类型。假如输入:10,则存在多义,因为编译器不知道如何转换。
二、char和unsigned char的情况

void f(unsigned char c);
void f(char c);

如果输入:f(‘c‘)无多义,但是输入f(88)会产生多义。
三、函数用缺省参数产生的多义

void f(in i,int j=1);
void f(int i);

输入f(20),会产生多义。



以上是关于C++重载的多义的主要内容,如果未能解决你的问题,请参考以下文章

C/C++编程笔记:C++中的函数重载和浮动

C++提高:运算符重载

C++提高:运算符重载

C++:如何为多个重载函数保留公共代码路径?

导航架构片段重载问题

有趣的 C++ 代码片段,有啥解释吗? [复制]