六.函数重载(从C到C++)

内容参考于《21天学通C++》(第八版)

六.函数重载

1. 示例
#include <iostream>
using namespace std;

const double Pi = 3.14159265;

double Area(double radius); // for circle
double Area(double radius, double height); // for cylinder

int main()
{
	cout << "Enter z for Cylinder, c for Circle: ";
	char userSelection = 'z';
	cin >> userSelection;

	cout << "Enter radius: ";
	double radius = 0;
	cin >> radius;

	if (userSelection == 'z')
	{
		cout << "Enter height: ";
		double height = 0;
		cin >> height;

		// Invoke overloaded variant of Area for Cyclinder
		cout << "Area of cylinder is: " << Area(radius, height) << endl;
	}
	else
		cout << "Area of cylinder is: " << Area(radius) << endl;

	return 0;
}

// for circle
double Area(double radius)
{
	return Pi * radius * radius;
}

// overloaded for cylinder
double Area(double radius, double height)
{
	// reuse the area of circle
	return 2 * Area(radius) + 2 * Pi * radius * height;
}
2. 作用

名称相同,但参数不同的函数被称为重载函数。
那么,下面的代码是编译不通过的,因为名称相同,参数相同

int max(int a, int b)
{
	return a >= b ? a : b;
}

bool max(int a, int b)
{
	return a >= b ? true : false;
}

下面代码是编译通过的

int max(int a, int b)
{
	return a >= b ? a : b;
}

bool max(int a)
{
	return a >= 20 ? true : false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值