ingredient.hpp
来自「深入浅出设计模式(书配套c++源代码)。包含20个设计模式的c++实现。」· HPP 代码 · 共 56 行
HPP
56 行
#ifndef _HFDP_CPP_VISITOR_INGREDIENT_HPP_#define _HFDP_CPP_VISITOR_INGREDIENT_HPP_namespace HeadFirstDesignPatterns {namespace Visitor {namespace Menus {// recommended daily valuesstatic const float dailyCalories = 2000.0f;static const float dailyCarbs = 300.f;static const float dailyCholesterol = 0.300f;static const float dailyFat = 65.0f;static const float dailyProtien = 50.0f;static const float dailySodium = 2.400f;class Visitor;class Ingredient : MenuComponent { protected: float _amount; protected: Ingredient( float amount = 1.0f ) : _amount( amount ) { assert( amount > 0.0f ); } public: virtual ~Ingredient() = 0 { } public: virtual void add( MenuComponent* menuComponent ) { } public: virtual void accept( Visitor* visitor ) = 0; public: virtual bool isVegetarian() const = 0; public: virtual float getCalories() const = 0; public: virtual float getCarbs() const = 0; public: virtual float getCholesterol() const = 0; public: virtual float getFat() const = 0; public: virtual float getProtien() const = 0; public: virtual float getSodium() const = 0; public: virtual float getHealthRating() const { float result = 0.0f; result += getCalories() / dailyCalories; result += getCarbs() / dailyCarbs; result += getCholesterol() / dailyCholesterol; result += getProtien() / dailyProtien; result += getSodium() / dailySodium; return _amount * ( result * 100.0f ); } public: virtual std::string toString() const = 0;};} // namespace Menus} // namespace Vistor} // namespace HeadFirstDesignPatterns#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?