c++ 重载函数的使用(求最大值)

本文介绍了C++中如何通过重载函数和函数模板来求取两个或三个整数的最大值。首先,展示了如何定义并使用重载函数Max,分别计算两个和三个整数的最大值。接着,引入了函数模板的概念,利用模板实现了相同功能,但能适用于不同类型的数值。函数模板提供了更大的灵活性,可以处理不同类型的数据,如整数和双精度数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c++ 重载函数的使用(求最大值)

1 重载函数

构造函数可以有多个重载(overloading)

相同函数名称有一个以上的构造函数,叫重载

2 构造函数

c++里面如果想创建一个对象(一个东西),有一个函数会自动被调用,不需要自己去调用,这个函数就是构造函数

构造函数的语法

  1. 函数名称和类的名称相同

  2. 可以拥有参数,此处实部虚部

  3. 参数可以有默认值

  4. 没有返回类型

3 求最大值

eg:求取两个整数,三个整数的最大值

3.1 使用重载函数Max
#include<iostream>
using namespace std;

int Max(int, int);
int Max(int, int, int);

int main()
{
	int x1, x2;
	cout << "请输入两个整数:";
	cin >> x1 >> x2;
	cout << " 这两个整数中的最大值:" << Max(x1, x2) << endl;

	int x3, x4, x5;
	cout << "请输入三个整数:";
	cin >> x3 >> x4 >> x5;
	cout << " 这三个整数中的最大值:" << Max(x3, x4, x5) << endl;

	return 0;
	
}

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

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

两个双精度,三个双精度数的最大值类似

3.2 使用函数模板
#include<iostream>
using namespace std;

template<typename T> //模板函数

T Max(T a, T b)
{
	return a > b ? a : b;
}

template<typename T>
T Max(T a, T b, T c)
{
	T Max = a > b ? a : b;
	return Max > c ? Max : c;
}

int main()
{
	int x1, x2;
	cout << "请输入两个整数:";
	cin >> x1 >> x2;
	cout << " 这两个整数中的最大值:" << Max(x1, x2) << endl;

	int x3, x4, x5;
	cout << "请输入三个整数:";
	cin >> x3 >> x4 >> x5;
	cout << " 这三个整数中的最大值:" << Max(x3, x4, x5) << endl;

	return 0;

}

函数模板的写法如下:

template <class 类型参数1, class类型参数2, ...>
返回值类型 模板名(形参表)
{
  函数体
}

其中的 class 关键字也可以用 typename 关键字替换,例如:

template <typename 类型参数1, typename 类型参数2, ...>

点击跳转—函数模板详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值