《C++ Primer》读书笔记-第六章 07 函数指针
来源:互联网 发布:数据结构与算法总结 编辑:程序博客网 时间:2024/04/29 02:04
作者:马志峰
链接:https://zhuanlan.zhihu.com/p/23926784
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://zhuanlan.zhihu.com/p/23926784
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
声明:
- 文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。
- 原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。
- 本文仅作学习交流使用,禁止任何形式的转载
内容
- 声明函数指针
- 函数指针作为形参
- 函数指针作为返回值
声明函数指针
指针指向某种特定的类型,那么函数的类型是什么呢?
函数的类型由它的返回类型和形参类型共同决定,与函数名无关
bool lengthCompare( const string&, const string& );
该函数的类型是
bool ( const string&, const string& )
那么可以用下面的形式声明函数指针
bool (*pf)( const string&, const string& );
即使用指针替换函数名即可
使用函数指针
函数指针有以下特殊:
- 函数名会自动地转换成指针,取地址符不是必须的
- 可以直接使用指向函数的指针调用函数,解引用不是必须的
pf = lengthCompare; pf = &lengthCompare;
调用
bool b1 = pf( "Hello", "goodbye" ); bool b2 = (*pf)( "Hello", "goodbye" ); bool b3 = lengthCompare( "Hello", "goodbye" );
函数指针形参
void useBegger( const string &s1, const string &s2, bool pf( const string &, const string & )); void useBegger( const string &s1, const string &s2, bool (*pf)( const string&, const string& ));
上面两个函数都是合法的
我们在使用函数指针作形参时
可以显示的将形参定义成指向函数的指针
也可以直接使用函数类型,会自动转换为函数指针
使用类型别名或decltype简化
//函数类型的别名 typedef bool Func(const string&, const string&); typedef decltype(lengthCompare) Func2; //函数指针的别名typedef bool(*FuncP)(const string&, const string &); typedef decltype(lenghtCompare) *FuncP2;
返回函数指针
int (*f1(int))(int *, int);
这样看上去复杂且难以理解,同样我们有多种方式来简化
- 类型别名
- decltype
- 尾置返回类型
到这里前六章的内容我们就完全看完啦!
后面会找一些练习来做,目前想到的有两个方面
- leetcode
- 使用opencv库做一些简单的图像处理
0 0
- 《C++ Primer》读书笔记-第六章 07 函数指针
- 《C++ Primer》读书笔记第六章-3-特殊特性 And 函数匹配 And 函数指针
- C++primer读书笔记(第六,七章)
- C++Primer读书笔记(第六章)
- C和指针读书笔记(第六章)
- c++primer第六章函数小结-6
- C++primer——第六章 函数
- 《C++ Primer》读书笔记-第六章 06 函数匹配
- 菜狗的C++ primer读书笔记:第六章 函数
- 《C++Primer》读书笔记--函数模板
- C++Primer第五版【笔记】——第六章 函数
- C++primer(第五版)第六章函数学习笔记
- 《C++primer(第五版)》学习之路-第六章:函数
- C++primer第五版笔记-第六章函数
- 《C++primer》读书笔记---数组和指针
- C++ Primer 读书笔记 – 第六章
- C++ Primer 读书笔记 – 第六章
- C++ Primer 读书笔记 – 第六章
- PAT B1022
- 证明异面直线的几种方法
- Spring Bean装配之Bean的定义及作用域的注解实现
- Frogger
- Spring MVC 流程图
- 《C++ Primer》读书笔记-第六章 07 函数指针
- 观光旅游
- LeetCode刷题笔记 07 Reverse Integer
- hive的安装与简单使用
- JavaScript编写城市联动框和时间联动框
- PAT B1023
- LeetCode刷题笔记 08 String to integer
- 《C++ Primer》读书笔记-第八章 01 IO类
- 无向图有向图邻接矩阵表示法