1. 函数指针

bool lengthCompare(const string&,  const string&);
bool (*pf)(const string&,  const string&);
pf = lengthCompare;
pf = &lengthCompare;

2. 重载函数的指针

bool *pf(const string&,  const string&);//表示返回值为bool指针的函数void f(int*);
void ff(unsigned int);void (*pf1)(unsigned in) = ff;void (*pf2)(int) = ff; //error
double (*pf2)(int*) = ff;//errorvoid useBigger(const string &s1, const string &s2, bool pf(const string &, const string &));//看似类型 实则指针
void useBigger(const string &s1, const string &s2,bool (*pf)(const string &, const string &));//等价:显示的声明  useBigger(s1, s2, lengthCompare);//直接调用//Func和Fun2函数类型
typedef bool Func(const string &, const string &);
typedef decltype(lengthCompare) Func2; //等价定义//FuncP和FuncP2都是指向函数的指针
typedef bool (*FuncP)(const string &, const string &);
typedef decltype(lengthCompare) *FuncP2; //等价定义void useBigger(const string &s1, const string &s2, Func);
void useBigger(const string &s1, const string &s2, Func2); //同上句

3. 返回指向函数的指针

using F= int(int*, int);//F1是函数类型,不是指针
using PF = int(*)(int*, int);//等价上句 PF f1(int);    //正确,PF是指向函数的指针,类型也正是f1所返回的函数的类型
F f1(int);     //错误,F是函数类型,f1不能返回一个函数
F* f1(int);    //正确,显式的指定返回类型是一个指向函数的指针int (*f1(int))(int*, int);//当然我们也能用更傻瓜的方式声明这个函数

4. 置尾返回类型

auto f1(int) -> int (*)(int*, int);

5. 将decltype作用于某函数时,它返回函数类型非指针类型

string::size_type sumLength(const string&,const string&);
decltype(sumLength) *getFcn(const string &);

C++ Primer 5th笔记(6)chapter6 函数:函数指针相关推荐

  1. C++ Primer 5th笔记(6)chapter6 函数: 重载

    1. const_cast和重载 const string sumLength(const string &s1, const string &s2) {return s1; } st ...

  2. C++ Primer 5th笔记(chap 19 特殊工具与技术)将成员函数用作可调用对象

    1. 通过一个指向成员函数的指针进行函数调用 利用.*或者->*运算符将该指针绑定到特定的对象上. 与普通的函数指针不同,成员指针不是一个可调用对象 不支持函数调用运算符. 不能直接将一个指向成 ...

  3. C++ Primer 5th笔记(chap 19 特殊工具与技术)成员函数指针

    1. 使用 classname::*的形式声明一个指向成员函数的指针. eg. / / pmf 是一个指针, 它可以指向 Screen 的某个常量成员函数 / / 前提是该函数不接受任何实参, 并且返 ...

  4. C++ Primer 5th笔记(chap 19 特殊工具与技术)链接指示: extern “C“

    1. C++程序有时需要调用其他语言编写的函数, C++使用链接指示( linkage directive)指出任意非 C++函数所用的语言 1.1 声明一个非C++函数 // 可能出现在 C++头文 ...

  5. C++ primer 5th笔记

    目录2022年11月25日 周五 阴 第一.二章:变量和基本类型 基本内置类型 unsigned float与double 'A'与"A" 布尔类型转换时 初始化与赋值 初始化 声 ...

  6. C++ Primer 5th笔记(6)chapter6 函数:参数匹配

    1. 实参数量 2. 类型是否与形参匹配 void f(int, int); void f(double, double f =3.13) f(42, 2.2);//error void f(long ...

  7. C++ Primer 5th笔记(6)chapter6 函数: 参数

    1 变量 1.1 自动对象:只存在于块执行期间的对象. 1.2 局部静态对象local static object 在程序的执行路径第一次经过对象定义语句时初始化, 程序终止结束 2.参数 2.1 指 ...

  8. C++ Primer 5th笔记(6)chapter6 函数: 调试帮助

    1. assert() 2. NDEBUG宏 void print(const int ia[], size_t size) {#ifndef NDEBUG#endif // NDEBUG // . ...

  9. C++ Primer 5th笔记(chap 17 标准库特殊设施)随机数引擎 vs rand 函数

    1. 结果范围 随机数引擎:生成的 unsigned 整数在一个系统定义的范围内 rand 生成的数的范围:在 0 到 RAND_MAX 之间 eg. 一个引擎类型的范围可以通过调用该类型对象的 mi ...

最新文章

  1. 支付宝支付 第三集:搭建项目及测试(含代码)
  2. 曹原25岁,今天第8篇Nature
  3. Shell之系统函数和自定义函数
  4. 期望文件系统格式在“1”到“4”之间;发现格式“6”
  5. C语言试题三十九之将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。
  6. 对怀孕的人有害的食物。。。朋友们记住咯!(欢迎转载)
  7. 面向对象软件开发代码结构(2)
  8. 富文本编辑器CKEditor配置及使用 - 转载篇
  9. 大学计算机网络期末重点,中南大学计算机网络期末复习重点
  10. 搭建fastdfs集群
  11. 【031】◀▶ 一些心得体会总结
  12. ai快捷键常用表_掌握这些AI常用快捷键和小技巧,提高速度
  13. css超链接样式+雪碧图实现导航
  14. 华为云电脑.模式_云电脑还是云手机,为何阿里、华为都要做?
  15. Lottie Android 动画制作与使用
  16. 休眠后网络无法自动连接——网卡属性没有电源管理选项
  17. 梯度下降求函数最小值C++样例
  18. 调大图片内存大小和降低图片内存大小快过来
  19. 百科不全书之我的常见报错和解决
  20. [Swift]LeetCode41. 缺失的第一个正数 | First Missing Positive

热门文章

  1. mysql之触发器详解_学习笔记之MySQL触发器详解
  2. 浮点数例外 (核心已转储)_15000 字梳理 JVM 的核心知识
  3. 一套完整的防火墙系统通常是由屏蔽路由器和代理服务器组成
  4. 全生命周期管理,是趋势更是未来
  5. “数据中心运维管理VIP学习群”问题汇总(一)
  6. java类加载器_JAVA类加载器
  7. 成功解决AttributeError: module 'numpy' has no attribute 'equal'
  8. auto-sklearn简介
  9. MySql 隐式转换
  10. windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)...