当前位置: 首页 > news >正文

好用的免费网站建设wordpress修改我要注册链接

好用的免费网站建设,wordpress修改我要注册链接,黑色大气网站源码,wordpress虚拟物品1.定义 给定一个语言#xff0c;定义它的文法的一种表示#xff0c;并定义一个解释器。比如加减乘除在代码里是一种表示#xff0c;我们需要翻译成可以阅读的数学公式#xff0c;并且可以供用户输入数字得到输出结果。 2.组成结构 抽象表达式#xff08;Abstract Expres…1.定义 给定一个语言定义它的文法的一种表示并定义一个解释器。比如加减乘除在代码里是一种表示我们需要翻译成可以阅读的数学公式并且可以供用户输入数字得到输出结果。 2.组成结构 抽象表达式Abstract Expression定义解释器的接口约定解释器的解释操作主要包含解释方法 interpret()。终结符表达式Terminal Expression是抽象表达式的子类用来实现文法中与终结符相关的操作文法中的每一个终结符都有一个具体终结表达式与之相对应。非终结符表达式Nonterminal Expression也是抽象表达式的子类用来实现文法中与非终结符相关的操作文法中的每条规则都对应于一个非终结符表达式。上下文Context通常包含各个解释器需要的数据或是公共的功能一般用来传递被所有解释器共享的数据后面的解释器可以从这里获取这些值。 我们将用示例代码来解释各个组成部分的意义。 3.示例代码 #include iostream #include mapusing namespace std;#define DELETE(pointer) delete pointer; pointernullptr const string key1 string(s1); const string key2 string(s2); const string key3 string(s3); const string key4 string(s4);class Context { public:Context() {datas[key1] 1;datas[key2] 2;datas[key3] 3;datas[key4] 4;}int getValue(string key) {if (!datas.count(key)){return 0;}return datas[key];}private:std::mapstring, int datas; };class Expression { public:Expression(Expression* left, Expression* right) :left(left), right(right) { }virtual ~Expression() {if (left ! nullptr){DELETE(left);}if (right ! nullptr){DELETE(right);}}virtual int interpreter(Context* context) 0;protected:Expression* left;Expression* right; };class MultiExpression : public Expression { public:MultiExpression(Expression* left, Expression* right) : Expression(left, right) { }int interpreter(Context* context) override {if ((left nullptr) || (right nullptr)){return 0;}return left-interpreter(context) * right-interpreter(context);} };class DivisionExpression : public Expression { public:DivisionExpression(Expression* left, Expression* right) : Expression(left, right) { }int interpreter(Context* context) override {if ((left nullptr) || (right nullptr)){return 0;}return left-interpreter(context) / right-interpreter(context);} };class TerminalExpression : public Expression { public:TerminalExpression(int value) : value(value), Expression(nullptr, nullptr) { }int interpreter(Context* context) {return value;}private:int value; };void doInterpreter() // 客户端client {/* 3*4/26 对应语法树如下/ 除法/ \* 2/ \3 4*/Context context;MultiExpression* multiExpression new MultiExpression(new TerminalExpression(context.getValue(key3)), new TerminalExpression(context.getValue(key4))); // 终止节点作为叶子结点非终止节点作为非叶子节点int mutil multiExpression-interpreter(context);cout mutil mutil endl;DivisionExpression* divisionExpression new DivisionExpression(multiExpression, new TerminalExpression(context.getValue(key2))); // 乘法表达式作为左子树 / 右子树int division divisionExpression-interpreter(context); // 运行解释器cout division division endl;DELETE(divisionExpression);// 这里注意不能第二次释放divisionExpression因为此时它是divisionExpression的左子树//divisionExpression释放的时候会自动释放左右子树也就是递归释放最终只需要释放最后一次嵌套调用的就行 }int main() {doInterpreter();system(pause);return 1; } 引用 C设计模式——解释器模式interpreter pattern_cinterpreter模式-CSDN博客
http://www.hkea.cn/news/14260822/

相关文章:

  • 哈尔滨建设银行网站网址大全免费下载安装
  • 用nodejs做的网站公司网页设计制作有哪些
  • qq是哪个公司国内seo公司
  • 苏州网站设计哪家好做网站定制
  • 济南企业网站搭建赣州新闻最新消息
  • 赣州做网站的公司有哪家好怎么查找网站
  • 咸阳营销型网站建设外贸公司职位
  • 重庆建站网站建设平台先做网站后备案
  • 怎么制作公司自己网站游戏开科技的软件
  • 网站建设审批网站布局设计步骤
  • 如何让网站被百度快速收录郑州网站seo外包
  • 北京道路建设在什么网站查询ssh精品课程网站开发
  • 网站排名不可有利就前我为群众办实事
  • 十堰优化网站哪家好推进网站建设工作计划
  • 国家住房城乡建设厅网站山西网站制作工具
  • 做文章网站福田公司旗下子公司
  • 沈阳定制网站建设拓者网室内设计官网app
  • 二级域名做外贸网站好吗手机app开发教程视频
  • 网页游戏网站2345汕头个人建站模板
  • 小型的游戏网站怎么做黄江建设网站
  • 做3d打印网站wordpress文章链接带问号
  • 网站开发要会英语吗怎么修改wordpress目录名字
  • 宁波 电商平台网站建设江西萍乡做网站公司
  • 企业建站公司哪里有搜索引擎优化包括以下哪些内容
  • 百度云自助建站怎样做才能让自己的网站
  • 青岛网站制作定制dede如何设置网站端口
  • 海珠营销型网站建设域名阿里云
  • 做网站存在的问题简单的wordpress模板
  • 个人免费自助建站网站建信网证书查询平台
  • 网站建设框架怎么写番禺核酸检测定点医院名单