参数个数不同:
int main()
{
int a,b,c;
int max(int ,int ,int );
int max(int ,int );
cin >> a >> b >> c;
cout << max(a,b) << endl;
cout << max(a,b,c) << endl;
return 0;
}
int max(int a,int b,int c)
{
if( b > a)
{
a = b;
}
if( c > a)
{
a = c;
}
return a;
}
int max(int a,int b)
{
if( a>b )
{
return a;
}
else
{
return b;
}
}
系统会自动根据参数的个数找到与之匹配的函数并调用;
不允许参数个数与类型相同,仅返回不同!
3.函数的模板:
即建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代替;
则不必定义多个函数,在调用时系统会根据实参的类型来代替模板中的数据类型;
template<typename T> // 注: 后无分号!!!!
T max(T a,T b,T c)
{
if( b > a)
{
a = b;
}
if( c > a)
{
a = c;
}
return a;
}
int main()
{
int q,w,e;
float a,s,d;
long z,x,c;
cin >> q >> w >> e;
cout << max(q,w,e) << endl;
cin >> a >> s >> d;
cout << max(a,s,d) << endl;
cin >> z >> x >> c;
cout << max(z,x,c) << endl;
return 0;
}
template 的意思是模板,尖括号中 写 typename XXX, 表示一个虚拟的类型名;
要等到函数调用时才知道 T是什么类型;
类型函数也可以不止一个 : template< typename T, typename TT >;
但它只适用于函数的参数个数相同,而类型不同的情况;参数个数不同时不可使用;
4.有默认参数的函数:
有时需要调用同一个函数时用的都是同一个实参,此时可以给形参一个默认;
如:
float area( float r = 6.5 );
则指定 r 的默认为 6.5 此时调用时可以不必给出实参:
area();
或者给出别的实参:
area(3.5);
若有多个形参,可以使每一个参数都有默认,也可以只对一部分形参指定默认,另一部分不指定;

如:
float volume( float h, float r = 16.5 ) // 仅仅指定 r的默认;
可以引用为:
volume(100);
volume(100,15);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-61530-4.html
所以车买不了
远远不如宙斯盾驱逐舰