最一般的屏幕输出是将插入符作用在流类的对象 cou上。例如: ■# include< iostream. h main ■{inta=5,b-12 cout<<a= a<<b=<<b<<endl; 1 最一般的键盘输入是将提取符作用在流类的对象cin 上。例如: #include <iostream.h> fint a, b, cin>>a>>b cout<<a<<b<<endl;) 提取符可以连续写多个,每个后面跟一个表达式, 该表达式通常是获得输入值的变量或对象
◼ 最一般的屏幕输出是将插入符作用在流类的对象 cout上。例如: ◼ #include <iostream.h> ◼ main() ◼ { int a=5,b=12; ◼ cout<<"a="<,a<<"b="<<b<<endl;} ◼ 最一般的键盘输入是将提取符作用在流类的对象cin 上。例如: ◼ #include <iostream.h> ◼ {int a,b; ◼ cin>>a>>b; ◼ cout<<a<<b<<endl; } ◼ 提取符可以连续写多个,每个后面跟一个表达式, 该表达式通常是获得输入值的变量或对象
14.4函数的重载 ■函数重载( overloading)是指一个函数可以和同 作用域中的其他函数具有相同的名字,即同一个函 数名可以对应着多个不同的函数实现。C+中允许 两个或多个函数共用同一个函数名,但这些函数各 自拥有可用于区分和唯一识别它们的参数表。它们 之间有的是通过参数表中某个参数的类型不同来区 别,有的是通过参数个数的不同加以区别
14.4函数的重载 ◼ 函数重载(overloading)是指一个函数可以和同一 作用域中的其他函数具有相同的名字,即同一个函 数名可以对应着多个不同的函数实现。C++中允许 两个或多个函数共用同一个函数名,但这些函数各 自拥有可用于区分和唯一识别它们的参数表。它们 之间有的是通过参数表中某个参数的类型不同来区 别,有的是通过参数个数的不同加以区别
1、参数类型上不同的重载函数 例142给函数名add定义多个函数实现,该函数的功能是求 和。其中,一个函数实现求两个整型数之和,另一个函数实 现求两个浮点数之和。每种实现对应着二个函数体,这些函 数的盆家相:是函数的参数的类型不同。这就是函数重 #include <iostream. h int add(int, int) double add(double, double) void main() i cout<<add(3, 6 <<endl a cout<<add(4.6, 9.0)<<endl; j ■ int add(inta,intb) i return a+b; j double add( double a, double b) i return a+b;) 程序运行结果如下 9 ■13.6
◼ 1、参数类型上不同的重载函数 ◼ 例14.2给函数名add()定义多个函数实现,该函数的功能是求 和。其中,一个函数实现求两个整型数之和,另一个函数实 现求两个浮点数之和。每种实现对应着一个函数体,这些函 数的名字相同,但是函数的参数的类型不同。这就是函数重 载的概念。程序如下: ◼ #include <iostream.h> ◼ int add(int ,int); ◼ double add(double,double); ◼ void main( ) ◼ { cout<<add(3,6)<<endl; ◼ cout<<add(4.6,9.0)<<endl; } ◼ int add(int a, int b) ◼ { return a+b; } ◼ double add(double a, double b) ◼ { return a+b; } ◼ 程序运行结果如下: ◼ 9 ◼ 13.6
2、参数个数上不同的重载函数 例143找出几个int型数中的最大者 #include <iostream.h> int max(int a, int b) int max(int a, int b, int c) a void main() cout<<max(12, 6)<<endl cout<<max(5, 9,-12)endl; j int max(int a, int b) return a>b?a: b:I int max(int a, int b, int c) int t if(a>=b)ta else tb if(c>t) t=c return t; j
◼ 2、参数个数上不同的重载函数 ◼ 例14.3找出几个int型数中的最大者。 ◼ #include <iostream.h> ◼ int max(int a, int b); ◼ int max(int a, int b, int c); ◼ void main( ) ◼ { cout<<max(12,6)<<endl; ◼ cout<<max(5,9,-12)<<endl; } ◼ int max(int a, int b) ◼ { return a>b?a:b; } ◼ int max(int a,int b, int c) ◼ { int t; ◼ if (a>=b) t=a; ◼ else t=b; ◼ if (c>t) t=c; ◼ return t; }
■函数重载要求编译器能够唯一地确定调用一个函数时应执行 哪个函数代码,即采用哪个函数实现。确定函数实现时,要 求从函数参数的个数和类型 区分。也就是 函数 重载时,要求同名函数在参数个数上不同,或者参薮类型 不同。否则,将无法实现重载。 使用函数重载主要是为了处理一组完成相同或相似功能的任 务,但处理的数据个数或类型不同,这样,编程时可以不必 力的给它们名和记忆。 如果两个函数参数个数和类型完全相同,仅仅是返回值不同 不是重载的函数。程序中出现这样两个函数,编译时将 出错。 函数重载可以使某些具有相似功能的函数聚集起来共同使用 不执语箱叔的挑准语,父数象用偏聂较起来的函数并
◼ 函数重载要求编译器能够唯一地确定调用一个函数时应执行 哪个函数代码,即采用哪个函数实现。确定函数实现时,要 求从函数参数的个数和类型上来区分。也就是说,进行函数 重载时,要求同名函数在参数个数上不同,或者参数类型上 不同。否则,将无法实现重载。 ◼ 使用函数重载主要是为了处理一组完成相同或相似功能的任 务,但处理的数据个数或类型不同,这样,编程时可以不必 费力的给它们起名和记忆。 ◼ 如果两个函数参数个数和类型完全相同,仅仅是返回值不同, 它们不是重载的函数。程序中出现这样两个函数,编译时将 出错。 ◼ 函数重载可以使某些具有相似功能的函数聚集起来共同使用 一个通常具有特定语义的函数名,但是当聚集起来的函数并 不执行相似的操作时,就不应采用函数重载