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 + -
显示快捷键?