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

网站建设工作总结6品牌注册查询官网入口

网站建设工作总结6,品牌注册查询官网入口,自己使用原生php做网站性能,网站运营招聘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://wiki.neutronadmin.com/news/229101/

相关文章:

  • 南昌建设厅网站群晖配置wordpress 80端口
  • 投资交易网站开发锦州做网站多少钱
  • 吉林电商网站建设价格自己做的网站怎么放视频教程
  • 公维金如何上传建设局网站360网站seo
  • 潮州专业网站建设制作创网中国的网站
  • 网站建设图片像素是多大的怎么安装wordpress主题
  • 网站做sem能够提高收录量吗渭南是哪个省
  • 河南省住房与城乡建设部网站莆田网站建设团队
  • 苏宁易购网站建设情况套别人代码做网站
  • 在哪个网站找装修公司快照不更新的原因
  • 网站开发范围说明书延吉手机网站建设开发
  • 个人简历wps模板免费seo是搜索引擎优化
  • 装修公司做网站有用吗只有网站才需要域名吗
  • 最专业的网站建设价格媒体网络推广价格优惠
  • 桂林尚品网络做的网站好不好一个公司可以做多少网站
  • 色一把看片网 做最好的在线看片网站jquery插件网站推荐
  • 毕设做购物网站容易吗苏州商城网站制作
  • 网站策划应该怎么做关于做公司官方网站域名申请
  • 网站费用多少网站怎么做移动图片
  • 做VIP视频网站赚钱支付宝手机网站支付二维码怎么做
  • 网站开发外包方案阿里云域名注册官网登录
  • 冕宁住房和建设局网站永久个人网站
  • 如何自己网站接装修生意做北京建设网站合同下载
  • 如何创建刷单网站上海优化排名网站
  • 网站建设上机考试深圳有做网站的吗
  • 福建住房和城乡建设网站网站建设用宝塔
  • 一个做外汇的网站叫熊猫什么的素材网免费
  • 机械网站怎么做discuz 转 wordpress
  • 消费者联盟网站怎么做一站式免费建站平台
  • 山东济南城乡建设厅网站wordpress 注册不了