关于函数重载
来源:互联网 发布:plc用c语言编程 编辑:程序博客网 时间:2024/06/11 20:37
一.构成函数重载的条件如下:
1.函数名相同。
2.这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,即参数列表不同。
3.返回值类型不同不构成重载函数。
二.重载函数的匹配原则:
1、严格匹配,找到后就调用。
2、没有找到严格匹配的函数,但是可以通过隐式转化,找到适合的重载函数。
例:
1.参数类型不一样
void print(int a)
{
printf("void print(int a)\n");
}
void print(string a)
{
printf("void print(string a)\n");
}
2.参数个数不同(较1)
void print(int a ,string b);
3.参数顺序不同(较2)
void print(string a ,int b);
为了估计哪个重载函数最适合,需要依次按照下列规则来判断:
- 精确匹配:参数匹配而不做转换,或者只是做微不足道的转换,如数组名到指针、函数名到指向函数的指针、T到const T;
- 提升匹配:即整数提升(如bool 到 int、char到int、short 到int),float到double
- 使用标准转换匹配:如int 到double、double到int、double到long double、Derived*到Base*、T*到void*、int到unsigned int;
- 使用用户自定义匹配;
- 使用省略号匹配:类似printf中省略号参数
“同一作用域”也是在函数重载的定义中的一个限定,如果不在一个作用域,不能算是函数重载,如下面的代码:
void f(int);void g(){ void f(double); f(1); //这里调用的是f(double),而不是f(int)}
本文只是作粗略基本介绍,了解更多请参照大神http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html
阅读全文
0 0
- 关于重载函数
- 关于函数重载
- 关于C++函数重载
- 关于赋值重载函数
- 关于函数重载
- 关于函数重载
- 关于函数重载(overload)
- 关于函数重载笔记002
- 关于重载和比较函数
- 关于AfxMessageBox没有重载函数
- 关于C++函数重载及虚函数
- 关于函数重载与函数的重定意
- 关于函数重载,运算符重载一说
- 关于函数重载解析笔记001
- C++里关于重载函数的问题
- 关于powerbuilder的全局函数重载问题
- 关于QPushButton构造函数的重载
- 关于类的成员函数的重载
- vbox启动提示 intel_rapl: no valid rapl domains found in package 0
- 第五篇:指针和数组之间的关系
- LeetCode[561]Array Partition I
- 第六篇:函数的指针、结构体、枚举、宏定义
- linux下tomcat的安装与配置
- 关于函数重载
- celery初级教程(一)
- 第七篇:函数指针,宏定义的优缺点及应用场景
- IPVS FULLNAT
- api接口安全设计
- BigDecimal
- 第八篇:jni的开发流程规范
- Ant 在eclipse中的使用!功能解释
- 扩展欧几里得