函数重载与函数指针

重载与函数指针

996.icu LICENSE

  • 什么是函数重载
  • 重载与函数指针相结合

阅读之前注意:

本文阅读建议用时:22min
本文阅读结构如下表:

项目下属项目测试用例数量
什么是函数重载函数重载1
函数重载与函数指针相结合函数重载与函数指针1

什么是函数重载

参考以下代码:

#include"iostream"
using namespace std;

int myPrint(int a)//函数返回值类型不是判定函数重载的依据
{
	printf("a=%d\n", a);
	return 0;
}

int myPrint(int a,int b)
{
	printf("b=%d\n", b);
	return 0;
}

//int myPrint(int a, int b,int c=0)//默认参数c会导致二义性,不明确
//{
//	printf("b=%d\n", b);
//	return 0;
//}

void main()
{
	myPrint(3, 4);
	system("pause");
}

可以看出,函数重载即同一个函数名,但形式参数的类型或个数不同,在函数里进行的处理也就不同。值得注意的是,如果有默认参数的存在,还有仅仅只是去掉默认参数的函数,这两个函数就会引起二义性,即编译器将不知道到底执行哪一个函数。
此外,函数重载经常应用在C++中的类的成员函数。1.

函数重载与函数指针相结合

参考以下代码(注意其中函数指针的定义方法):

#include "iostream"
using namespace std;

int myPrint(int a)
{
	printf("%d\n", a);
	return 0;
}

int myPrint(char *s)//重载+1
{
	printf("%s\n", s);
	return 0;
}

int myPrint(int a, int b)//重载+2
{
	printf("a=%d,b=%d\n", a, b);
	return 0;
}

typedef int(*pFun) (int a);//定义了新的数据类型,表示指针指向函数

void main()
{
	pFun pF1 = myPrint;
	pF1(3);
	system("pause");
}

可以看到,在上述代码中,函数指针不过是一种新定义的数据类型pFun罢了,然后再用这种数据类型去定义变量pF1,即可按照函数指针这种数据类型定义的格式来调用相关的重载函数1.

如果本文对你有帮助,不如请我一杯可乐吧
在这里插入图片描述


  1. 测试用例基于王保明先生的讲课内容. ↩︎ ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值