0
点赞
收藏
分享

微信扫一扫

【C++】函数指针简介

驚鴻飛雪 2022-04-05 阅读 53
c++

【C++】函数指针简介


文章目录


简介

本文为《C++ Primer》第五版关于函数指针的使用的读书笔记
!!!本文的源码均来自于《C++ Primer》第五版!!!(可能会稍作修改)
The source codes in this article are all from C++ Primer, The Fifth Edition


1. 函数指针

函数指针(Function Pointer):指向某种特定类型函数的指针,注意,特定类型精细到返回值类型和参数类型必须一致

int Square(const int& number)
{
	return number * number;
}

int main()
{
	// 注意,如果Square为内联函数,即有inline关键字,函数指针不需要加inline
	int (*fp)(const int& number);	// 声明一个函数指针

	fp = □					// 让指针指向一个函数,常规方法
	cout << (*fp)(2) << endl;		// 调用函数指针,常规方法

	fp = Square;					// 让指针指向一个函数,隐式转换方法
	cout << fp(2) << endl;			// 调用函数指针,隐式转换方法
}

2. 将函数指针作为参数传入函数

函数指针作参数:这个是个很实用的技巧,这允许我们将函数作为参数传入其他函数

假设我们有一个Square函数如下:

// 计算一个数的平方
int Square(const int& number)
{
	return number * number;
}

现在我们需要写一个CalculateSqrSum来计算两个数平方之和

  • 常规写法:传入函数指针
// 各计算两数的平方,随后相加
int CalculateSqrSum(const int& a, const int& b, int (*mySqr)(const int& number))
{
	return mySqr(a) + mySqr(b);
}
  • 省事写法:利用隐式转换,直接传入函数
// 各计算两数的平方,随后相加
int CalculateSqrSum(const int& a, const int& b, int mySqr(const int& number))
{
	return mySqr(a) + mySqr(b);
}
举报

相关推荐

0 条评论