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

长沙网站开发 58新乡网络公司推荐

长沙网站开发 58,新乡网络公司推荐,汕头市网络优化推广平台,学网页设计大概需要多少钱?适配器模式 将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 角色和职责 请求者#xff08;client#xff09;#xff1a;客户端角色,需要使用适配器的对象#xff0c;不需要关心适配器内部的实现#xff0c;…适配器模式 将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 角色和职责 请求者client客户端角色,需要使用适配器的对象不需要关心适配器内部的实现只对接目标角色。 目标角色Target目标角色,和client直接对接定义了client需要用到的接口。 这是客户所期待的接口。目标可角色以是具体的或抽象的类也可以是接口。 源角色Adaptee源角色 需要被进行适配的对象。也叫源对象。 适配器角色Adapter适配器角色 适配器负责将源对象转化给client做适配。 通过在内部包装一个源对象(Adaptee)把源接口转换成目标接口。 这四个角色是保证这个设计模式运行的关键。 代码演示 源角色 //源角色 class MyPrint { public:void operator()(int v1, int v2){//重载operator()cout v1 v2 endl; } };目标角色 //目标角色 class Target { public:virtual void operator()(int v) 0;virtual ~Target(){}; };适配器角色 //适配器角色 class Adapter : public Target { public:Adapter(int param){this-param param;};void operator()(int v) {myPrint(v,param); } private:MyPrint myPrint;int param; };客户角色 //client #include iostream #include vector #include algorithm using namespace std; int main(int argc, char *argv[]) {vectorint v;for(int i0;i10;i){v.push_back(i);}//for_each(v.begin(),v.end(),MyPrint());//直接传入源角色对象不满足条件编译也不会通过for_each(v.begin(),v.end(),Adapter(12));//传入适配器由适配器内部来操作。return 0; }使用for_each函数需引入algorithm头文件for_each函数需要三个参数 第一个first 是迭代器指向容器中第一个元素, 第二个last 是迭代器指向容器中最后一个元素的下一个位置。 第三个fn 是一个可调用对象函数指针、函数对象或Lambda表达式它接受容器中元素的引用作为参数。 for_each函数原型 templateclass InputIterator, class FunctionFunction for_each(InputIterator first, InputIterator last, Function fn) {for(;first!last; first;) {fn (*first);}return fn; // or, since C11: return move(fn); }对于不同的函数调用Function参数可以表示具有重载的()运算符的类类型。最终,for_ach()代码将具有一个使用fn()的表达式。 如果最后的for each()参数fn是指向函数的指针而()调用该函数。 如果最后的for each()参数fn是一个函数对象确切的说是函数对象则fn将是调用其重载的operator()运算符的对象。(也是本例中我们使用的)。 for_each 函数 是一个模板函数内部就是对内置的for循环语句的封装。基于模板可遍历符合要求所有容器元素。 函数对象重载的operator()运算符的非抽象类实例化出的对象可称为函数对象。可以像调用函数一样使用函数对象加([参数])的方式会自动调用重载的operator()故而称之为函数对象。 适配器模式 UML类图中客户端和目标角色直接对接。但是我们上面的例子中for_each()中传入的是一个函数对象。故而直接Client和适配器接触。
http://www.eeditor.cn/news/124547/

相关文章:

  • 做新网站都需要准备什么动漫制作专业正规吗
  • 网站备案对网站负责人的要求室内设计师收入高吗
  • 网站开发主菜单和子菜单互动平台怎么改名字
  • 网站页面链接结构hhvm wordpress 空白
  • 建一个网站花费西安网站建设招标
  • 网站添加模块淘宝网站策划怎么做
  • 湘潭做网站电话磐石网络企业网站的推广方式
  • 如何做网站的百科无锡梅村网站建设
  • 企业网站布局代码视频网站 外链
  • 做淘宝客网站制作教程视频seo入门教程视频
  • 广州黄浦区建设局网站在广州做seo找哪家公司
  • 腾讯有做淘宝客网站吗推文关键词生成器
  • 电商类网站模板wordpress 阿里云主机名
  • 正定网站建设农安县建设局网站
  • 组成原理毕业设计代做网站推荐网站建设ftp软件有哪些
  • 临淄网站建设asp网站开发框架
  • 企业网站 建设策划书赤峰市建设网站
  • 建设定制网站Ie8网站后台编辑文章
  • 自己做营销网站用自己电脑做外网访问网站
  • 河南seo网站策划广西住房和城乡建设门户网站
  • 手机网站软件不受国家管理的浏览器
  • 胶南做网站汽车门户网站开发
  • 欧美农庄网站模板自己做的网站怎么放上网
  • 云虚拟主机可以做视频网站不wordpress网站分享微信群
  • 泰州网站专业制作wordpress 修改页面链接地址
  • 济南网络科技公司广州网站建设优化公司
  • 网站公司企业宗旨对网站建设提建议
  • 网站帮助中心设计php网站开发路线
  • 企业官网网站模板下载不了wordpress 回复邮件
  • 外贸先做网站还是开公司wordpress搬家全站 404