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

网站页面缺点分析案例网页界面设计方案

网站页面缺点分析案例,网页界面设计方案,青岛制作网页公司,品牌网站建设顾问Smart Pointers智能指针 看起来、用起来、感觉起来像内置指针#xff0c;但提供更多的机能。拥有以下各种指针行为的控制权#xff1a; 构造和析构#xff1b;复制和赋值#xff1b;解引。 Smart Pointers的构造、赋值、析构 C的标准程序库提供的auto_ptr template: au…Smart Pointers智能指针 看起来、用起来、感觉起来像内置指针但提供更多的机能。拥有以下各种指针行为的控制权 构造和析构复制和赋值解引。 Smart Pointers的构造、赋值、析构 C的标准程序库提供的auto_ptr template: auto_ptr对象是个smart pointer用来指向诞生于堆内的对象直到该auto_ptr被销毁为止当销毁发生时auto_ptr的析构函数会删除其所指物。 templateclass T class auto_ptr { public:auto_ptr(T* ptr):pointee(ptr){}~auto_ptr(){delete pointee;}... private:T* pointee; };在“同一对象只可被一个auto_ptr拥有”的前提下上述做法可以有效运作但当auto_ptr被复制或被赋值其“对象拥有权”会转移 templateclass T class auto_ptr { public:...auto_ptr(auto_ptrT rhs);auto_ptrT operator (auto_ptrT rhs);... }; templateclass T auto_ptrT::auto_ptr(auto_ptrT rhs) {pointee rhs.pointee; //将*pointee的拥有权转移至*thisrhs.pointee 0; //rhs不再拥有任何东西 }templateclass T auto_ptrT auto_ptrT::operator (auto_ptrT rhs) {if(this rhs)return *this;delete pointee; //必须删除目前拥有之物pointee rhs.pointee;rhs.pointee 0;return *this; }由于auto_ptr的复制构造函数被调用时对象拥有权转移了所以以by value方式传递auto_ptrs绝对不合适Pass-by-refrence-to-const才是适当的途径。 void printTreeNode(ostream s,auto_ptrTreeNode p) {s *p; }int main() {autoTreeNode ptn(new TreeNode);...printTreeNode(cout,ptn); //以by value方式传递auto_ptr }//Pass-by-refrence-to-const方式 void printTreeNode(ostream s, const auto_ptrTreeNode p) {s *p; }实现Dereferencing Operators解引操作符 smart pointers的核心operator*和operator-函数 //operator* templateclass T T SmartPtrT::operator*() const {///perform smart pointer processing;return *pointee; } //返回值是reference形式//operator- void editTuple(DBPtrTuple pt) {LogEntryTuple entry(*pt);do{pt-displayEditDialog();//会被编译器解释为(pt.operator-())-displayEditDialog();}while (pt-isValid false) } //大部分时候想要operator-返回一个普通的dump pointer templateclass T T* SmartPtrT::operator-() const {//perform smart pointer processing;return pointee; }测试Smart Pointers是否为NULL 为smart pointer classes加上一个isNull函数很容易但smart pointers 无法像dumb pointers那般自然地测试是否为null SmartPtrTreeNode ptn; ... if(ptn 0) ... //错误 if(ptn) ... //错误 if(!ptn) ... //错误提供一个类型转换操作符允许上述动作得以通过编译 templateclass T class SmartPtr { public:...operator void*(); //如果dumb ptr是null返回零//否则返回非零值 };SmartPtrTreeNode ptn; ... if(ptn 0) ... //ok if(ptn) ... //ok if(!ptn) ... //ok缺点允许你把smart pointers拿来和完全不同的类型做比较 SmartPtrApple pa; SmartPtrOrange po; ... if(pa po) //竟然可以过关//重载“操作符” templateclass T class SmartPtr { public:...bool operator!() const; //只有当smart ptr是null才返回true... };//clients SmartPtrTreeNode ptn; ... if(!ptn) {... }else{... }if(ptn 0) ... //错误 if(ptn) ... //错误//唯一的风险 SmartPtrApple pa; SmartPtrOrange po; ... if(!pa !po) //竟然可通过编译C标准库中“隐式转换为void*”已被“隐式转换为bool”取代而operator bool总是返回operator的反相。 将Smart Pointers转换为Dumb Pointers 如果为smart pointer-to-T template加上一个隐式类型转换函数便可转换为dumb pointer-to-T Templateclass T class DBPtr { public:...operator T*() const; //新增的转换操作符... };DBPtrTuple pt; ... normalize(pt); //现在这就成功了//nullness测试问题也一并解决了 if(ptn 0) ... //可以 if(ptn) ... //可以 if(!ptn) ... //可以与设计smart pointer目的相违背也不要提供对dumb pointer的隐式转换操作符除非不得已 Smart Pointers和“和继承有关的”类型转换 我们真正想要知道的是如何能够将“smart pointers classes的行为”在“与继承相关类型转换”上能够和dumb pointers一样。答案很简单不能够。 smart pointers虽然smart却不是pointers我们所能做的最好情况就是使用member templates来产生转换函数然后再在其中出现模棱两可的时候使用转型动作。 Smart Pointers 与 const smart pointers中const只能施行于指针身上不能用于其所指的对象 类型转换如果涉及const便是一条单行道从non-const 转换成const是安全的从const 转换成non-const则不安全。此外能够对const做的任何事情也都可以对non-const指针进行。 和public inheritance的规则类似可以利用 实现smart pointers时令一个smart pointer-to-T class公开继承一个对应的smart pointer-to-const-T class: templateclass T class SmartPtrToConst { public:... //一般都会有smart pointer member//functionsprotected:union{const T* constPointee; //给SmartPtrToConst使用T* pointee; //给SmartPtr使用}; };templateclass T class SmartPtr:public SmartPtrToConstT {... //没有data members }
http://www.w-s-a.com/news/617011/

相关文章:

  • 什么是网站功能源码下载站
  • 石家庄制作网站的公司双柏县住房和城乡建设局网站
  • 影视vip网站建设教程ppt模板免费下载 素材红色
  • 内蒙古城乡建设部网站首页平台网站建设ppt
  • 集约化网站建设项目官方网站建设
  • 原创先锋 北京网站建设网站开发电脑内存要多少
  • 婚恋网站建设项目创业计划书网站建设 食品
  • 免费建网站代码查询做导员的网站
  • 做网站的软件电子可以看女人不易做网站
  • 学校响应式网站模板下载仙居住房和城乡建设规划局网站
  • 推广网站的方法有拍卖网站建设
  • 网站建设网站排名优化中国网站服务器哪个好
  • asp网站应用程序网站建设需要提供的资料
  • 网站开发与设计.net微信小程序设计制作
  • 怎样做网站排名优化展馆设计费取费标准一览表
  • 网站建设去哪可接单网站建设与设计大作业
  • 休闲咖啡厅网站开发目标韩国小清新网站模板
  • 做微景观的网站制作网页模板适应不同分辨率
  • 最简单的网站系统昨天军事新闻最新消息
  • 做ps网页设计的网站有哪些wordpress内容付费
  • 有没有免费注册域名的网站科技小制作 手工 简单
  • 网站支付端口win10优化大师怎么样
  • 怎么做云购网站吗网站流量监测
  • 网站被恶意刷流量可以翻外墙的浏览器
  • 网站做直链下载存储解决方案怎么把网站设置为主页面
  • 西安做网站招聘深圳网站见
  • 网站怎么做优化百度能搜索到wordpress 子分类
  • 六安网站建设培训制作网站需要多少时间
  • 电子商务专业网站建设什么软件可以做动画视频网站
  • wordpress 分享主题做网站优化有必要