C++语言基础 例程 函数重载

    xiaoxiao2025-09-29  7

    贺老师的教学链接

    重载函数:同名同体,但接口不同

    #include <iostream> using namespace std; int max(int a,int b,int c); //函数声明 double max(double a,double b,double c); long max(long a,long b,long c); int main( ) { int i1,i2,i3,i; cin>>i1>>i2>>i3; //输入3个整数 i=max(i1,i2,i3); //求3个整数中的最大者 cout<<"i_max="<<i<<endl; double d1,d2,d3,d; cin>>d1>>d2>>d3; //输入3个双精度数 d=max(d1,d2,d3); //求3个双精度数中的最大者 cout<<"d_max="<<d<<endl; long g1,g2,g3,g; cin>>g1>>g2>>g3; //输入3个长整数 g=max(g1,g2,g3); //求3个长整数中的最大者 cout<<"g_max="<<g<<endl; } int max(int a,int b,int c) { if(b>a) a=b; if(c>a) a=c; return a; } double max(double a,double b,double c) { if(b>a) a=b; if(c>a) a=c; return a; } long max(long a,long b,long c) { if(b>a) a=b; if(c>a) a=c; return a; }

    重载函数:同名不同体,参数个数有区别

    #include <iostream> using namespace std; int max(int a,int b,int c); //函数声明 int max(int a,int b); int main( ) { int a=8,b=-12,c=27; //输出3个整数中的最大者 cout<<"max(a,b,c)="<<max(a,b,c)<<endl; //输出两个整数中的最大者 cout<<"max(a,b)="<<max(a,b)<<endl; } 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; }

    函数重载与参数的默认值不要冲突

    #include <iostream> using namespace std; int max(int a,int b,int c=5); //函数声明 int max(int a,int b); int main( ) { int a=8,b=-12,c=27; cout<<"max(a,b,c)="<<max(a,b,c)<<endl; cout<<"max(a,b)="<<max(a,b)<<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; }
    最新回复(0)