C++语言程序设计

下面再看一个函数重载的例子，函数名为abs，其功能为求一个数的绝对值：

| 例5-31

// 重载两个绝对值函数.
#include <iostream.h>
#include <iomanip.h>
int abs(int i); // abs()重载三次
float abs(float x);
float abs(double x);

void main()
{
int ians; // 保存返回值
float fans;
double dans;
int i = -15; // 传到三个重载的函数
float x = -64.53;
double d = -120.293;
ians = abs(i); // C++调用整数abs()
cout << "整数-15的绝对值是 " << ians << "\n";
fans = abs(x); // C++调用单精度浮点abs()
cout << "单精度浮点-64.53的绝对值是 " <<
setprecision(4) << fans << "\n";
dans = abs(d); // C++调用双精度浮点abs()
cout << "双精度浮点-120.293的绝对值是 " <<
setprecision(6) << dans << "\n";
// 根据参数的类型，C++匹配有合适参数的函数
}

int abs(int i) // 整型绝对值函数
{
if (i < 0)
return i *( -1);
else
return i;
}

float abs(float x) // 单精度浮点绝对值函数
{
if (x < 0.0)
return x * (-1.0);
else
return x;
}

double abs(double x) // 双精度浮点绝对值函数
{
if (x < 0.0)
return x * (-1.0);
else
return x;
}

运行该程序，输出结果如下：
整数-15的绝对值是15
单精度浮点-64.53的绝对值是64.53
双精度浮点-120.293的绝对值是120.293