挑战30天C++入门极限-C++中的函数重载
来源:互联网 发布:在职研究生网络授课 编辑:程序博客网 时间:2024/04/29 11:32
我们来举一个实际应用中的例子来说明问题:我们要进行两种不同数据类型的和操作为了实现它,在c语言中我们就要写两个不同名称的涵数来进行区分例如:int testa(int a,int b)和float testb(float a,floatb),这样字是没有问题,但是总有一点不好,这么两个具备极其相似操作函数我们却起两个不同的名字,这样子不是很好管理,所以c++为了方便程序员编写程序特别引入了函数重载的概念来解决此问题,我们看看如下的代码:
#include <iostream>
using namespace std;
int test(int a,int b);
float test(float a,float b);
void main()
{
cout << test(1,2) << endl << test(2.1f,3.14f) << endl;
cin.get();
}
int test(int a,int b)
{
return a+b;
}
float test(float a,float b)
{
return a+b;
}
在上面的程序中我们同样使用了两个名为test的函数来描述int类型和操作的和float类型和操作,这样一来就方便了程序员对相同或者相似功能函数的管理。
看了上面的解释很多人会问,这么一来计算机该如何来判断同名称函数呢?操作的时候会不会造成选择错误呢?
回答是否定的。c++内部利用一种叫做名称粉碎的机智来内部重命名同名函数,上面的例子在计算重命名后可能会是testii和testff 他们是通过参数的类型或个数来内部重命名的,关于这个作为程序员不需要去了解它,说一下只是为了解释大家心中的疑问而已。好了,关于函数学重载的基础知识就说到这里,至于如何利用这个功能,就靠大家在日常的学习或者是工作中逐渐摸索了。
- 挑战30天C++入门极限-C++中的函数重载
- 挑战30天 C/C++ 入门极限系列教程-引言
- 挑战30天 C/C++ 入门极限系列教
- 挑战30天C++入门极限-C/C++中函数指针的含义(上)
- 挑战30天C++入门极限-C/C++中函数指针的含义(下)
- 挑战30天C++入门极限-c++中函数重载的相关知识
- 挑战30天C++入门极限-关于C++中的内联函数(inline)
- 挑战30天C++入门极限-C/C++中数组和指针类型的关系
- 挑战30天C++入门极限-C/C++中枚举类型(enum)
- 挑战30天C++入门极限-c/c++中指针学习的两个绝好例子
- 挑战30天C++入门极限-C/C++中利用数组名/指针进行排序实例
- 挑战30天C++入门极限-C/C++中利用空指针简化代码,提高效率
- 挑战30天C++入门极限-C/C++中命令行参数的原理
- 挑战30天C++入门极限-C/C++中字符串常量的不相等性及字符串的Copy
- 挑战30天C++入门极限-C/C++中字符指针数组及指向指针的指针的含义
- 挑战30天C++入门极限-在C++语言中,关于内联函数(inline)的入门教程
- 挑战30天C++入门极限-exit()与return()函数的差别
- 挑战30天C++入门极限-C++中的const限定修饰符
- 挑战30天C++入门极限-C++中布尔类型
- 挑战30天C++入门极限-c++中函数重载的相关知识
- 挑战30天C++入门极限-在C++语言中,关于内联函数(inline)的入门教程
- 挑战30天C++入门极限-C++中堆内存(heap)的概念和操作方法
- 完善的修改3389的方法
- 挑战30天C++入门极限-C++中的函数重载
- 大事件:Red Hat 宣布并购JBoss!
- 请停止犯贱——(与charmkid的一点共鸣)
- 挑战30天C++入门极限-C/C++中字符串常量的不相等性及字符串的Copy
- 挑战30天C++入门极限-C/C++中字符指针数组及指向指针的指针的含义
- 开发基于ATL窗口应用的步骤
- appfuse学习指导
- 我的最爱
- 挑战30天C++入门极限-C/C++中利用空指针简化代码,提高效率