//同名函数的调用
#include
using namespace std;//“std”命名空间,主函数前说明,后可直接使用cin,cout
//也可在每次使用时对cout 说明,std::cout<<”Hello World”;
double max(double a,double b,double c=-1E308) //三个实数
//C++允许定义函数时为形参设定默认值,也称缺省值
{
double x;
x = a;
if(x<b) x = b;
if(x<c) x = c;
return x;
}
double max(double a,double b) //两个实数
{
return a > b ? a : b;
}
double max(double x[],int n) //实形数组,定义数组,排序。 n数组中元素的个数
//输出数组中的最大数
{
double t = x[0];
for(int i=1;i<n;i++)
if(t<x[i]) t=x[i];
return t;
}
int main()
{
cout<<max(3.5,4.7)<<endl;
cout<<max(3.5,4.7,4.2)<<endl;
double buf[10]={
1.2,3.4,5.6,7.8,9.0};
cout<<max(buf,10)<<endl;
system("pause"); //调用系统命令,暂停终端
}
//使用函数模板生成模板函数——求最大值函数
#include
using namespace std;
template<class S,class T> //"T"变元
T max(S a,T b)
{
return a>b?a:b;
}
/*
double* max(double* a,double* b)
{
return a>b?a:b;
}
*/
int main()
{
int x=3,y=5;
double a=4.15,b=9.27;
int z = max(x,y);
double c = max(a,b);
double *t = max(&a,&b); //比较a与b的地址值的大小
printf("%d\n%lf\n%lf\n",z,c,*t);
}
void fun(char *fs,...)//第一参数是字符串,是指向字符的指针,是起始地址
{
//具体代码
}
Java定义形参数量不限
static void show(Object...arg) //object是Java的基类,arg为形参名,...表示数量不限
{
//具体代码
}
Java取数组长度 arg.length 函数多态 比如设计一组同名函数max,功能是求若干数据的最大值。“可能的对象”可以是整数、可以是实数,也可以是其它类型的数据;可能是3个数找大,可能是5个数找大,也可能是100个数找大。数据类型、数量不同,但想做的事情都是一样的:找最大值。
int i=0,i
#include
#include
//指针版本
template<class T>
void Show(T *a,T *b)
{
while(a!=b)
cout<<*a++<<' ';
cout<<endl;
}
//以调用数组x为例
Show(x,x+6)//想要显示最后一个数组的下一个位置的地址
把同一种操作作用于各种可能的对象,产生相同或者相似的效果,称为多态(Polymorphism)。多态是面向对象程序设计的三大核心理念之一(另两个是封装和继承)。
用一组同名函数达到多态的效果称为函数多态。