在有效的c ++,第35项中,作者通过函数指针介绍了策略模式.具体在第172页
class GameCharacter;
int defaultHealthCalc(const GameCharacter& gc);
class GameCharacter {
public:
typedef int (*HealthCalcFunc)(const GameCharacter&);
explicit GameCharacter(HealthCalcFunc hcf = defaultHealthCalc)//why not &defaultHealthCalc?
: healthFunc(hcf)
{}
int healthValue() const
{ return healthFunc(*this); }
...
private:
HealthCalcFunc healthFunc;
};
Run Code Online (Sandbox Code Playgroud)
在第六行,为什么赋值函数指针HealthCalcFunc
是defaultHealthCalc
不是&defaultHealthCalc
?