c++函数重载(新手入门级讲解)

C++函数重载

C++函数重载可以这样简单理解。

作者的话:

1、本文章供大家参考学习,欢迎朋友们留言交流,也希望有朋友有其他见解。
2、文章写的很冲忙,若有错误,还请赐教。
3、你的点赞是对我的最大鼓舞。>^ _ ^<(疯狂暗示)。

情况一

下面为大家展示例题:

#include<iostream>

void print( int *pstart , int *pend );				//声明函数
void print( char *pstart , char *pend );			//声明函数

int main()
{
	const unsigned short X = 5;						//相当于宏定义。(可以这么理解)
	int IntArrar[X] = {1,2,3,4,5};					//定义一个int型数组。
	char CharArrar[X] = {'a','y','r','m','j'};		//定义一个char型数组。

	int *pInt = IntArrar;							//定义一个int型指针变量
	char *pChar = CharArrar;						//定义一个char型指针变量

	print( IntArrar , IntArrar + 5 );				//调用函数1
	print( CharArrar , CharArrar + 5);				//调用函数2

	return 0;
}

void print( int *pstart , int *pend )
{
	while( pstart != pend )							//输出
	{
		std::cout << *pstart << " " ;
		pstart++;
	}
	std::cout << std::endl;
}

void print( char *pstart , char *pend )
{
	while( pstart != pend )							//输出
	{
		std::cout << *pstart << " " ;
		pstart++;
	}
	std::cout << std::endl;
}

可见两个函数的名称均为"print" ,并且返回值均为void。
但是他们的参数类型不同,一个为int整型,一个为char字符型。
故在这两个函数被调用时,会依据起参数类型选择性调用第一还是第二个函数。
这就是C++函数重载的一种情况。

情况二

另一种情况是函数名称相同,但是参数数目不同。

下面展示例题:

#include<iostream>

void calc( double a );							//声明
void calc( double a , double b );				//声明
void calc( double a , double b , double c);		//声明

int main()
{
	std::cout << "请输入数字(用空格隔开):	" ;

	double a[3];
	int i = 0;
	while( std::cin.peek() != '\n' && i < 3 )
	{
		if( std::cin.peek() == ' ')				//如果是空格,用std::cin.get()吃掉。
		{
			std::cin.get();
			continue;
		}

		std::cin >> a[i];						//赋值。
		i++;
	}

	switch(i)								//判断参数数目进行调用
	{
	case 1:
		calc( a[0] );
		break;
	case 2:
		calc( a[0] , a[1] );
		break;
	case 3:
		calc( a[0] , a[1] , a[2] );
		break;
	}

	return 0;
}

void calc( double a )						//输入一个数字会输出他的平方。
{
	std::cout << a * a << std::endl;
}

void calc( double a , double b )			//输入两个数字会输出他们的乘积。
{
	std::cout << a * b << std::endl;
}

void calc( double a , double b , double c)	//输入三个数字会输出他们的和。
{
	std::cout << a + b + c << std::endl;
}

很明显这里有三个名称为calc函数。
但是他们的函数参数数目不同(一个为1个,一个为2个,一个为3个)。
简单的来说,函数的重载就是函数名相同,但是参数的个数类型不同。

本文章只在本人的知识范围内,若有更深的见解,欢迎在下方评论区留言哦。

你的点赞是对我的最大鼓舞。>^ _ ^<(疯狂暗示)(手动滑稽)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值