热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设计模式复习解释器模式

#pragmaonce#includestdafx.h#include#include#include#include

#pragma once
#include "stdafx.h"
#include
#include
#include
#include
#include
using namespace std;/*设计模式-解释器模式(interpreter)给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表示为一个简单语言中的句子。
这样就可以构建一个解释器,该解释器通过解释这些句子来解决问题(比如正则表达式)。
*/class CContext {//解释器之外的一些全局信息
public:string mstrInput;CContext(const string &strInput) {mstrInput = strInput;}
};class CAbstractExpression {//抽象解释操作
public:virtual void Interpret(CContext *pContext) = 0;
};class ExpressionA : public CAbstractExpression {//表达式A
public:void Interpret(CContext *pContext) {cout <<"ExpressionA:" <mstrInput <};class ExpressionB : public CAbstractExpression {//表达式B
public:void Interpret(CContext *pContext) {cout <<"ExpressionB:" <mstrInput <};int main() {listlstWork;lstWork.clear();lstWork.push_back(new ExpressionA());lstWork.push_back(new ExpressionB());lstWork.push_back(new ExpressionA());lstWork.push_back(new ExpressionB());CContext *pContext &#61; new CContext("test");for each(CAbstractExpression * index in lstWork) {index->Interpret(pContext);delete index;}delete pContext;getchar();return 0;
}


推荐阅读
author-avatar
覃思慧_419
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有