1. c语言钩子:
特性模块:功能函数,调用注册函数
主线模块:注册函数,定义钩子(通常是全局变量),调用钩子
2. c++策略模式:
特性模块:从策略基类派生一个新特性类,实例化对象并调用set方法
主线模块:以策略类(指针)作为成员变量的大类,其中包括调用策略的成员函数(类比c语言的钩子),set策略的成员函数(类比注册函数),定义策略基类(功能函数为纯虚函数,析构函数也声明为虚函数(原因见ref))
ref:
策略模式: https://blog.csdn.net/lanchunhui/article/details/51001077
虚析构函数:https://blog.csdn.net/weicao1990/article/details/81911341 -> 只要有多态,基类的析构记得声明为虚函数
虚函数的实现:https://blog.csdn.net/qq_33369979/article/details/108410855 -> 直接理解为子类有一个表把所有该调用的函数地址存下来,一旦使用的多态(基类指针的方法是虚函数),就去找子类的函数表。
explicit关键字:https://zhuanlan.zhihu.com/p/52152355 ->构造函数不允许隐式转换参数类型
标签:调用,策略,钩子,函数,C++,https,基类,语言 From: https://www.cnblogs.com/qh4869/p/16916408.html