栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++代码:函数重载

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++代码:函数重载

在定义函数的时候,只定义一种类别的函数在不同数据类型中被调用,显示的结果如下:

#include
int maxValue(int a, int b) {
	return a > b ? a : b;
}
int main() {
	int a = 3, b = 9;
	std::cout << "Max Value(Integer):" << maxValue(a, b) << std::endl;
	float f1 = 3.5, f2 = 3.9;
	std::cout << "Max Value(Float):" << maxValue(f1, f2) << std::endl;
	char ch1 = 'c', ch2 = 'd';
	std::cout << "Max Value(Char):" << maxValue(ch1, ch2) << std::endl;
}

 我们可以看到,最后的结果都是整数的形式,因此一种函数的定义是不够的。

#include
int maxValue(int a, int b) {
	return a > b ? a : b;
}
float maxValue(float a, float b) {
	return a > b ? a : b;
}
char maxValue(char a, char b) {
	return a > b ? a : b;
}
int main() {
	int a = 3, b = 9;
	std::cout << "Max Value(Integer):" << maxValue(a, b) << std::endl;
	float f1 = 3.5, f2 = 3.9;
	std::cout << "Max Value(Float):" << maxValue(f1, f2) << std::endl;
	char ch1 = 'c', ch2 = 'd';
	std::cout << "Max Value(Char):" << maxValue(ch1, ch2) << std::endl;
}

重新添加定义函数后的结果如下:

 我们会发现如果类别越多,定义的函数也越多,会显得比较累赘。

这时候使用函数模板template就表现的很方便了

代码如下:

#include

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

int main() {
	int a = 3, b = 9;
	std::cout << "Max Value(Integer):" << maxValue(a, b) << std::endl;
	float f1 = 3.5, f2 = 3.9;
	std::cout << "Max Value(Float):" << maxValue(f1, f2) << std::endl;
	char ch1 = 'c', ch2 = 'd';
	std::cout << "Max Value(Char):" << maxValue(ch1, ch2) << std::endl;
}

 然后我们还可以添加const和&表示引用,不是新的变量产生,const保证值不被修改

#include

template 
T maxValue(const T& a, const T& b) {
	return a > b ? a : b;
}

int main() {
	int a = 3, b = 9;
	std::cout << "Max Value(Integer):" << maxValue(a, b) << std::endl;
	float f1 = 3.5, f2 = 3.9;
	std::cout << "Max Value(Float):" << maxValue(f1, f2) << std::endl;
	char ch1 = 'c', ch2 = 'd';
	std::cout << "Max Value(Char):" << maxValue(ch1, ch2) << std::endl;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号