设计模式-行为-解释器
来源:互联网 发布:淘宝旺旺位置设置 编辑:程序博客网 时间:2024/05/21 17:01
#pragma once#include <string>using namespace std;class Context //表述内容{public:Context();~Context();protected:private:};class AbstractExpression //抽象表达式{public:virtual ~AbstractExpression();virtual void Interpret(const Context& c);protected:AbstractExpression();private:};class TerminalExpression:public //终止符表达式AbstractExpression{public:TerminalExpression(const string&statement);~TerminalExpression();void Interpret(const Context& c);protected:private:string _statement;};class NonterminalExpression:public //非终止符表达式AbstractExpression{public:NonterminalExpression(AbstractExpression* expression,int times);~NonterminalExpression();void Interpret(const Context& c);protected:private:AbstractExpression* _expression;int _times;};
#include "StdAfx.h"#include "interpreter_impl.h"#include <iostream>using namespace std;//Context.cppContext::Context(){}Context::~Context(){}//interpret.cppAbstractExpression::AbstractExpression(){}AbstractExpression::~AbstractExpression(){}void AbstractExpression::Interpret(const Context& c){}TerminalExpression::TerminalExpression(const string& statement){this->_statement = statement;}TerminalExpression::~TerminalExpression(){}void TerminalExpression::Interpret(const Context& c){cout<<this->_statement<<"TerminalExpression"<<endl;}NonterminalExpression::NonterminalExpression(AbstractExpression* expression,int times){this->_expression = expression;this->_times = times;}NonterminalExpression::~NonterminalExpression(){}void NonterminalExpression::Interpret(const Context& c){for (int i = 0; i < _times ; i++){this->_expression->Interpret(c);}}
// Interpreter.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "interpreter_impl.h"#include <stdlib.h>//给定一个语言,定义它的文法的一种表示,并定义一个解释器,//这个解释器使用该表示来解释语言中的句子。int _tmain(int argc, _TCHAR* argv[]){Context* c = new Context();AbstractExpression* te = new TerminalExpression("hello");AbstractExpression* nte = new NonterminalExpression(te,2);nte->Interpret(*c);delete nte;system("pause");return 0;}
阅读全文
0 0
- 设计模式-行为-解释器
- 设计模式--行为型--解释器模式
- 行为设计模式---解释器模式(Interpreter)
- 行为型设计模式-解释器模式
- 行为型设计模式-解释器模式
- 设计模式---行为类型---解释器
- 设计模式-行为设计模式:解释器模式 Interpreter
- 设计模式 - 行为型模式 - 解释器模式
- 设计模式笔记--行为型模式-之三 解释器
- 设计模式笔记(16)---解释器模式(行为型)
- 设计模式(15)-行为型-解释器模式(Interpreter)
- 设计模式--解释器模式Interpreter(行为型)
- [设计模式-行为型]解释器模式(Interpreter)
- 【小话设计模式】行为型之解释器模式
- 设计模式(行为型)之解释器模式(Interpreter Pattern)
- 设计模式-行为型之解释器模式
- 设计模式-行为型- 解释器模式(Interpreter)
- 【设计模式】行为模式之解释器Interpreter
- JZOJ 5400. 【NOIP2017提高A组模拟10.7】Repulsed
- [bzoj-4557][JLoi2016]侦察守卫 题解
- Codeforces Beta Round #4 (Div. 2 Only) C. Registration system(hash)
- 动态规划-376. Wiggle Subsequence
- 2017-10-07开通,用于记录学习过程中的积累
- 设计模式-行为-解释器
- HDU 1024 DP
- <C语言经典100例>c35 auto关键字
- 2017.8.9测试 题一 17倍
- The specified JRE installation does not exist
- STL string
- 设计模式-行为-迭代器
- C++双冒号::
- Python中获取异常(Exception)信息