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

做网站大概要多品牌网站建设S苏州

做网站大概要多,品牌网站建设S苏州,哪些网站可以做百科来源,做网站用框架么传统的virtual动态多态&#xff0c;经常会有下面这样的使用需求&#xff1a; #include <iostream> #include <vector>// 声明一个包含virtual虚函数的基类 struct shape {virtual ~shape() {}virtual void draw() 0; };// 派生&#xff0c;实现virtual虚函数 str…

传统的virtual动态多态,经常会有下面这样的使用需求:

#include <iostream>
#include <vector>// 声明一个包含virtual虚函数的基类
struct shape
{virtual ~shape() {}virtual void draw() = 0;
};// 派生,实现virtual虚函数
struct rectangle : shape
{virtual void draw() override{std::cout << "rectangle" << std::endl;}
};// 派生,实现virtual虚函数
struct circle : shape
{virtual void draw() override{std::cout << "circle" << std::endl;}
};int main()
{// 由于要用vector容器来保存各种不同的对象,所以这里容器元素的类型只能使用基类指针std::vector<shape*> vec;vec.emplace_back(new rectangle());vec.emplace_back(new circle());// 通过virtual动态多态调用,来实现调用真正的对象类型的成员函数for (const auto& p : vec){p->draw();}// 输出:// rectangle// circle
}

上面同样的需求,换成proxy库来实现是这样的:

#include <iostream>
#include <vector>
#include "proxy.h"// 声明一个代理类,最终会通过这个代理类去调用真正的类对象的成员函数
struct draw : pro::dispatch<void()>
{template <class T>void operator()(T& self) { self.draw(); }
};struct shape : pro::facade<draw> {};// 不需要派生,不需要virtual虚函数
struct rectangle
{void draw(){std::cout << "rectangle"<< std::endl;}
};// 不需要派生,不需要virtual虚函数
struct circle
{void draw(){std::cout << "circle" << std::endl;}
};int main()
{// 这里容器元素的类型是个proxy的代理类型std::vector<pro::proxy<shape>> shapes;shapes.emplace_back(pro::make_proxy<shape>(rectangle()));shapes.emplace_back(pro::make_proxy<shape>(circle()));// 注意这里的调用方式和virtual动态多态的调用方式不同for (auto& p : shapes){p.invoke<draw>();}// 输出:// rectangle// circle
}

可以看到,换成proxy库之后,不再有virtual虚函数,而且是非侵入式的,我觉得这种方式非常棒,很优雅。至于性能测试,我没有去做。

详情见这个开源仓库地址:https://github.com/microsoft/proxy

最后编辑于:2023-08-24
http://www.yayakq.cn/news/164136/

相关文章:

  • dw制作asp网站模板象山县住房建设局网站
  • 信息门户网站怎么做企业设计网站系统
  • 福州建设网站公司中学生网站源码
  • 成都工程建设信息网站一键网站建设
  • 目前流行的网站开发技术wordpress 主题 模板
  • 网站建设语言开展网站建设服务
  • 网站建设公司官方网站网站集约化建设标准
  • 自己做的网站能被百度收录吗企业网站建站系统
  • flask api式网站开发ps如何做网站横幅
  • 维影企业网站管理系统益阳房产网站建设
  • 做视频网站视频前台网站建设
  • 阿里云iis放网站杭州网站制作专业
  • 免备案手机网站专业做书画推广的网站
  • 污水处理厂网站建设网站公司文化怎么做
  • 简述网站建设的作用用哪个网站做简历更好
  • 淘宝刷单的网站建设衡水网站建设 燕丰收
  • 网站未备案做经营被罚款企业建设网站的目的( )
  • 下载类网站开发条件网络文化经营许可证多少钱
  • 西安做网站公司哪家行公司展厅设计策划
  • 丽水开发区建设局网站廉租房网站流量 钱
  • 要搭建网站网页制作成品模板网站
  • 用网站做邮箱吗网站空间建设
  • 做网站的学校有哪些网站建网站建设专业
  • 做网站项目流程图模板网站建设网站设计哪家专业
  • 军事网站模板网站设计全包
  • 网站开发工具的功能包括HTML或网页制作公司的服务
  • 东莞市研发网站建设品牌中山市网站开发外包公司
  • 上海网站怎么备案表WordPress 主题解密
  • 网站建设合同的注意点seo网络推广师招聘
  • wordpress站点标题副标题换行深圳广告设计公司深圳画册设计