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

如何做网站pptwordpress登录logo修改

如何做网站ppt,wordpress登录logo修改,网站建设学习学校,怎样说服公司做网站文章目录 一、思想二、框架三、代码 一、思想 每⼀个Connection对连接进行管理,最终都不可避免需要涉及到应用层协议的处理,因此在Connection中需要设置协议处理的上下文来控制处理节奏。但是应用层协议千千万,为了降低耦度,这个…

文章目录

  • 一、思想
  • 二、框架
  • 三、代码

一、思想

每⼀个Connection对连接进行管理,最终都不可避免需要涉及到应用层协议的处理,因此在Connection中需要设置协议处理的上下文来控制处理节奏。但是应用层协议千千万,为了降低耦度,这个协议接收解析上下文就不能有明显的协议倾向,它可以是任意协议的上下文信息,因此就需要⼀个通⽤的类型来保存各种不同的数据结构。
在C语言中,通用类型可以使用void*来管理,但是在C++中,boost库和C++17给我们提供了一个通用类型any来灵活使用,如果考虑增加代码的移植性,尽量减少第三方库的依赖,则可以使用C++17特性中的any,或者自己来实现。而这个any通用类型类的实现其实并不复杂,以下是简单的部分实现。

二、框架

/*Any类主要是实现⼀个通⽤类型出来,在c++17和boost库中都有现成的可以使⽤,但是这⾥实现⼀下
了解其思想,这样也就避免了第三⽅库的使⽤了*//*⾸先Any类肯定不能是⼀个模板类,否则编译的时候 Any<int> a, Any<float>b,需要传类型作
为模板参数,也就是说在使⽤的时候就要确定其类型*/
/*这是⾏不通的,因为保存在Content中的协议上下⽂,我们在定义any对象的时候是不知道他们的协
议类型的,因此⽆法传递类型作为模板参数*/
/*因此考虑Any内部设计⼀个模板容器holder类,可以保存各种类型数据*/
/*⽽因为在Any类中⽆法定义这个holder对象或指针,因为any也不知道这个类要保存什么类型的数
据,因此⽆法传递类型参数*/
/*所以,定义⼀个基类placehoder,让holder继承于placeholde,⽽Any类保存⽗类指针即可*/
/*当需要保存数据时,则new⼀个带有模板参数的⼦类holder对象出来保存数据,然后让Any类中的⽗
类指针,指向这个⼦类对象就搞定了*/

三、代码

class Any{private:class holder {public:virtual ~holder() {}virtual const std::type_info& type() = 0;virtual holder *clone() = 0;};template<class T>class placeholder: public holder {public:placeholder(const T &val): _val(val) {}// 获取子类对象保存的数据类型virtual const std::type_info& type() { return typeid(T); }// 针对当前的对象自身,克隆出一个新的子类对象virtual holder *clone() { return new placeholder(_val); }public:T _val;};holder *_content;public:Any():_content(NULL) {}template<class T>Any(const T &val):_content(new placeholder<T>(val)) {}Any(const Any &other):_content(other._content ? other._content->clone() : NULL) {}~Any() { delete _content; }Any &swap(Any &other) {std::swap(_content, other._content);return *this;}// 返回子类对象保存的数据的指针template<class T>T *get() {//想要获取的数据类型,必须和保存的数据类型一致assert(typeid(T) == _content->type());return &((placeholder<T>*)_content)->_val;}//赋值运算符的重载函数template<class T>Any& operator=(const T &val) {//为val构造一个临时的通用容器,然后与当前容器自身进行指针交换,临时对象释放的时候,原先保存的数据也就被释放Any(val).swap(*this);return *this;}Any& operator=(const Any &other) {Any(other).swap(*this);return *this;}
};
http://www.yayakq.cn/news/301494/

相关文章:

  • 建筑设计招标网站成都网站建设中心
  • 科技公司网站网页wordpress标签墙
  • 图片网站如何优化电子商务的营销模式有哪些
  • 高端品牌网站建设方案网站开发项目报价
  • 网站备案的网站名称在线看mv视频网站入口软件下载
  • 手游网络游戏排行榜上海seo顾问推推蛙
  • 网上做兼职网站有哪些工作互联网创业项目的效果
  • 品牌网站建设服务商wordpress 网店主题
  • 网站左侧图片悬浮代码wordpress island
  • 成都哪里有做网站建设的wordpress发布文章关键词
  • 论坛网站推广做微课的网站
  • 中国城市建设控股集团有限公司网站设计之家logo设计
  • 网页编辑实践报告什么是seo关键词
  • 南京房地产网站建设wordpress 直达链接
  • 网站快速推广排名技巧文创产品设计调研
  • 做网站开发要具备什么知识保利集团网页设计作业
  • 松江九亭网站建设怎么查网站是哪个建站公司做的
  • 怎样做网站手机客户端免流网站开发
  • 下载 iis 网站企业文化网站建设
  • 潍坊知名网站建设抢注qq空间专属域名网站
  • 温州网站建设培训学校wordpress 时尚主题
  • 前端网站建设和维护美食网站建设策划书
  • 电商网站页面布局南京建筑人才招聘网
  • 网上建设网站需要做的工作上海中企动力做网站多少钱
  • 有哪些企业可以做招聘的网站网站cms系统下载
  • 连连跨境电商网站开发安卓手机做网站
  • 专业网站建设信息php网站开发需要什么软件
  • 十大搞笑素材网站万链网站做的怎么样?
  • 成都网站建设河马建站网易163企业邮箱注册
  • 郑州百度推广网站建设网络平台搭建是什么意思