int volume(int L,int W ,int H=1);//H为默认参数, 正确
int volume(int L,int W=1,int H=1);//W,H为默认参数, 正确
int volume(int L=1,int W=1,int H=1);//L,W,H为默认参数, 正确
int volume(int L=1,int W ,int H);// 错误
int volume(int L,int W=1,int H);// 错误
//全局变量p1,p2
int p1=2, p2=10;intmax(int a,int b){return a>b ? a : b;}int volume(int L,int W ,int H=1);//允许常量
int volume(int L,int W ,int H=p1+p2);//允许全局变量及表达式
int volume(int L,int W ,int H=max(5,6));//允许函数调用
int volume(int L,int W ,int H=max(p1,p2))//允许全局变量函数调用
//形参类型不同
int add(int a,int b);
double add(double a, double b);//形参个数不同
int add(int a,int b);int add(int a,int b,int c);
eg:
#include <iostream>
using namespace std;intmax(int a,int b)//整型版本
{return(a>b ? a : b);}
double max(double a, double b)//双精度版本
{return(a>b ? a : b);}longmax(long a,long b)//长整型版本
{return(a>b ? a : b);}int main(){int i=12, j=-12, k;
k =max(i,j);//调用整型版本max
cout <<"int max="<< k << endl;
double x=123.4, y=65.43, z;
z =max(x,y);//调用双精度版本max
cout <<"double max="<< z << endl;long a=7654321, b=1234567, c;
c =max(a,b);//调用长整型版本max
cout <<"long max="<< c << endl;return0;}
eg:
#include <iostream>
using namespace std;intmax(int a,int b)//两个参数版本
{return(a>b ? a : b);}intmax(int a,int b,int c)//三个参数版本
{
a = a>b ? a : b ;
a = a>c ? a : c ;return(a);}int main(){int a , b, i=10, j=8, k=12;
a =max(i,j);//调用两个参数版本max
b =max(i,j,k);//调用三个参数版本maxreturn0;}