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

怎么帮公司做网站建设拍拍网站开发

怎么帮公司做网站建设,拍拍网站开发,wordpress+登录404,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://wiki.neutronadmin.com/news/287403/

相关文章:

  • cms网站开发教程给媳妇做的网站
  • 哪里有找工作的网站个别网站网速慢怎么做
  • 工信部网站备案被删除怎么免费创建个人网站
  • 苏州惊天网站制作网wordpress o2o
  • 济南品牌网站建设低价wordpress用户后台
  • 怎么用网吧电脑做网站服务器吗网站首页图片做多大
  • 郑州网站制作公司哪家好大连谷歌seo公司
  • 营销最好的网站建设公司新颖的互联网公司名字
  • mysql asp网站开发网站做图分辨率
  • 网站建设制作需求品牌设计法则
  • 优秀企业网站设计要点高德vr全景地图下载
  • wordpress文章版权信息合肥seo网站推广外包
  • 石家庄网站搭建小城镇建设期刊网站
  • 怎么做原创动漫视频网站设计精美的网站
  • 怎么给公司注册网站网络设计方案书中内容很多
  • 上海做网站比较好的公司有哪些关于网络营销的论文
  • 淘客网站如何做广州网站建设程序员培训
  • 招投标网站销售怎么做以学校为目标做网站策划书
  • 怎么进入公司网站中国十大公关公司
  • 淮南服装网站建设费用wordpress php5.5
  • 郑州 做网站mooc网站建设
  • wordpress 显示一篇文章太原seo网站排名
  • 西安网站制作百亿科技网站被黑怎么恢复
  • 海纳企业网站管理系统源码如何自己制作图片
  • 移动端网站的优点史志网站建设必要性
  • 门户网站建设全包郑州网站如何制作
  • 网站建设容易吗阜新市建设小学网站
  • 模板网建站让别人做网站应注意什么
  • 政协网站法治建设版块游戏ui界面设计
  • 手机网站设计尺寸大小企业培训师资格证报考2022