首页 > 编程 > C++ > 正文

c++ 知识2

2019-11-06 06:16:42
字体:
来源:转载
供稿:网友

函数重载

https://github.com/hongwangli/study_cpp/blob/master/test_010_reload_template.cpp 重载是为了减少麻烦才产生的。 打个比方,你为了要计算两个数的和,写了一个函数,如下:

int intSum(int nA,int nB) { return (nA+nB); } //这个只是计算了两个整形的和,或许你还要写一个计算浮点数和的函数: float floatSum(float fA,float fB) { return (fA+fB); } //或许你还需要计算一个浮点数和一个整形的和,还需要一个函数: float float_intSum(float fA,int nB) { return (fA+(float)nB); }

甚至,如果你用C++的话,你还会需要一些计算对象之间的和,等等。。。。 当写了这么多的函数,在实际运用中根据需要选择不同的函数来计算某些类型的和,我想你也记不住这么多函数。用重载吧,只需要记住一个函数名就行了。 /////////////////////////////////////////////////////////////////////////////

//函数Fun_Sum的重载 int Fun_Sum(int A,int B) { return (A+B); } float Fun_Sum(float A,float B) { return (A+B); } double Fun_Sum(double A,double B) { return (A+B); } UINT Fun_Sum(UINT A,UINT B) { return (A+B); }

//等等,可以的话这种重载写数十个也不会重复。 //好了,以后你想要计算某两个类型的和时(可以是不同类型),不需要去想该用哪个计算和的函数,统统调用函数Fun_Sum就行了,至于到底是其中的哪一个函数在被调用,让编译器去伤脑筋吧。 重载函数的参数个数、参数类型、参数顺序、这三者中至少要有一个不同,才能进行函数重载,因为调用重载函数就是要根据这个来区分具体的调用哪个函数,而函数的返回值可以相同可以不同

函数模版

template<typename T> 通用函数定义或template<class T> 通用函数定义

但是用函数模板只能用于 函数的参数个数相同而类型不同的情况,如果参数个数不同,则不能使用函数模板。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选