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

php 网站建设 教学个性化定制平台

php 网站建设 教学,个性化定制平台,龙岩网红餐厅,网站成功案例访问者模式通过将对元素的操作与元素本身分离#xff0c;使得可以在不修改元素类的情况下定义新的操作。 #include iostream #include vector #include algorithm// 前向声明 class ConcreteElementA; class ConcreteElementB;// 访问者接口 class V…访问者模式通过将对元素的操作与元素本身分离使得可以在不修改元素类的情况下定义新的操作。 #include iostream #include vector #include algorithm// 前向声明 class ConcreteElementA; class ConcreteElementB;// 访问者接口 class Visitor { public:virtual void visit(ConcreteElementA *element) 0;virtual void visit(ConcreteElementB *element) 0; };// 元素接口 class Element { public:virtual void accept(Visitor *visitor) 0; };// 具体元素A class ConcreteElementA : public Element { public:void accept(Visitor *visitor) override{visitor-visit(this);}void operationA(){std::cout ConcreteElementA operationA() std::endl;} };// 具体元素B class ConcreteElementB : public Element { public:void accept(Visitor *visitor) override{visitor-visit(this);}void operationB(){std::cout ConcreteElementB operationB() std::endl;} };// 具体访问者 class ConcreteVisitor : public Visitor { public:void visit(ConcreteElementA *element) override{std::cout ConcreteVisitor visit ConcreteElementA std::endl;element-operationA();}void visit(ConcreteElementB *element) override{std::cout ConcreteVisitor visit ConcreteElementB std::endl;element-operationB();} };// 对象结构类 class ObjectStructure { private:std::vectorElement * elements;public:void addElement(Element *element){elements.push_back(element);}void removeElement(Element *element){auto it std::find(elements.begin(), elements.end(), element);if (it ! elements.end()){elements.erase(it);}}void accept(Visitor *visitor){for (Element *element : elements){element-accept(visitor);}} };int main() {ObjectStructure objectStructure;ConcreteElementA elementA;ConcreteElementB elementB;objectStructure.addElement(elementA);objectStructure.addElement(elementB);ConcreteVisitor visitor;objectStructure.accept(visitor);return 0; }运行结果 ConcreteVisitor visit ConcreteElementA ConcreteElementA operationA() ConcreteVisitor visit ConcreteElementB ConcreteElementB operationB()在上述代码中Visitor是访问者接口定义了访问具体元素的方法。Element是元素接口定义了接受访问者访问的方法。ConcreteElementA和ConcreteElementB是具体元素类实现了元素接口。ConcreteVisitor是具体访问者类实现了访问者接口。ObjectStructure是对象结构类用于管理元素的集合并提供接受访问者访问的方法。在main函数中我们创建了具体元素A和B的实例并将它们添加到对象结构中。然后创建了具体访问者的实例并调用对象结构的accept方法将访问者应用于所有元素。输出结果会显示访问者对不同元素的访问和操作。
http://www.w-s-a.com/news/580236/

相关文章:

  • 江西建设工程信息网站重庆网站推广大全
  • 南浔区住房城乡建设局网站网页设计基础学什么
  • 萧山做网站的企业网站建设 西安
  • 江西省城乡建设厅网站百度站长资源平台
  • 本地搭建linux服务器做网站免费查企业信息查询
  • 电商网站建设与运营网上购物哪个网站最好
  • 做app做网站从何学起网站设计需要什么证
  • 设计网站最重要的是要有良好的短网址还原
  • 大连建设银行招聘网站做seo是要先有网站吗
  • 中山做网站的wordpress建站教程百科
  • 湛江专业网站制作做网站需要工具
  • 做音箱木工网站吉林平安建设网站
  • 品牌网站建设咨询灯光设计网站推荐
  • 温州网站运营打开百度一下网页版
  • 网站有情链接怎么做住房公积金个体工商户
  • 内蒙古网站开发网站开发验收资料
  • 温州网站建设首选国鼎网络网络营销方法可分为两类
  • 做张家界旅游网站多少钱企业推广网络营销
  • 代做毕设网站推荐广东手机微信网站制作
  • 福州建设工程质量监督网站专业做公司宣传网站的
  • 百度云建站教程网站工程师是做什么的
  • 手机在线制作网站一级消防工程师考试试题及答案
  • 网站设计的需求网页制作教程和素材
  • 徐州网站建设 网站推广WordPress 文章编辑
  • 做什么网站比较受欢迎软件商店下载安装2023版本最新
  • 做ip资讯的网站怎么在wordpress中套用同行网页
  • 医院网站如何备案东莞优化公司收费
  • 罗村网站开发适合ps做图的素材网站有哪些
  • 网站建设中 油财宝企业网址怎么整
  • asp.net空网站php网站开发要学什么