【实训5-22】函数重载
(总分11)


 【实训目的】函数重载   

【第 1 步】实训内容介绍
         1. 实训内容介绍
         2. 函数重载
         3. 实训结束

【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。

 

 

【第 2 步】函数重载

 1、在项目 cpp5 中创建名为 cpp5code 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
 2、将下述代码复制到 cpp5code 中:

#include <iostream.h>

// 下述三个同名的函数,因为参数个数和类型的不同而形成重载
// 在这里补写代码

void main(void) {
         int a=3, b=5, c=7;
         int x, y;
         double z;

         // 编译器会根据参数的个数和类型,自动识别并调用正确的函数
         x = add(a, b); // 2 个整数参数
         y = add(a, b, c); // 3 个整数参数
         z = add(1.23, 3.56); // 2 个实数参数

         cout << "两个整数的和是 {" << x << "}\n";
         cout << "三个整数的和是 {" << y << "}\n";
         cout << "两个实数的和是 {" << z << "}\n";
}

int add(int x, int y){
         cout << "{求两数和的函数}\n";
         return x + y;
}
int add(int x, int y, int z){
         cout << "{求三数和的函数}\n";
         return x + y + z;
}

double add(double x, double y){
         cout << "{求两实数和的函数}\n";
         return x + y;
}

 代码见简明教程【例5-22】第 1 步代码,运行结果如下:

{求两数和的函数}
{求三数和的函数}
{求两实数和的函数}
两个整数的和是 {8}
三个整数的和是 {15}
两个实数的和是 {4.79}
Press any key to continue

代码如下:
// 从下一行开始复制。
#include <iostream.h>

int add(int, int);
int add(int, int, int);
double add(double, double);

void main(void) {
         int a=3, b=5, c=7;
         int x, y;
         double z;

         // 编译器会根据参数的个数和类型,自动识别并调用正确的函数
         x = add(a, b); // 2 个整数参数
         y = add(a, b, c); // 3 个整数参数
         z = add(1.23, 3.56); // 2 个实数参数

         cout << "两个整数的和是 {" << x << "}\n";
         cout << "三个整数的和是 {" << y << "}\n";
         cout << "两个实数的和是 {" << z << "}\n";
}

int add(int x, int y){
         cout << "{求两数和的函数}\n";
         return x + y;
}
int add(int x, int y, int z){
         cout << "{求三数和的函数}\n";
         return x + y + z;
}

double add(double x, double y){
         cout << "{求两实数和的函数}\n";
         return x + y;
}
// 一直复制到上一行结束。

【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 3 步】实训总结

 本次实训学习了函数的重载。两个同名函数形成重载的条件是满足下列条件之一:
         1. 不同的参数个数
         2. 不同的参数类型

【Jitor 校验第 3 步】我已阅读实训总结 // 送分题。直接点击。

 

仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页