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

公司网站的具体的建设方案推广教程

公司网站的具体的建设方案,推广教程,购物中心网站模板,网站制作企业有哪些概述 Clone函数是一种用于复制的计算机函数。在程序编写中#xff0c;除了自定义一个拷贝构造函数来实现对象复制外#xff0c;还可以实现一个clone函数。这需要借助编译器实现的一个隐藏拷贝构造函数#xff0c;这样的做法#xff0c;更省心。 中文名clone函数外文名clon…概述 Clone函数是一种用于复制的计算机函数。在程序编写中除了自定义一个拷贝构造函数来实现对象复制外还可以实现一个clone函数。这需要借助编译器实现的一个隐藏拷贝构造函数这样的做法更省心。 中文名clone函数外文名clone所属学科信息学 基本介绍 在C中要拷贝一个对象除了自定义一个拷贝构造函数来实现对象复制外还可以实现一个clone函数。这需要借助编译器实现的一个隐藏拷贝构造函数这样的做法更省心。 背后的原理是C的原型Prototype模式用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象。 Prototype模式提供了一个通过已存在对象进行新对象创建的接口Clone Clone实现和具体的语言相关在C中通过拷贝构造函数实现。 注意clone函数是virtual的无法内联。 示例代码 ​ #include stdafx.h #include iostreamclass CA { public:int value;CA* clone() const { return new CA( *this );}//仅一个构造函数CA(int a ){valuea;} };int _tmain(int argc, _TCHAR* argv[]) {CA* objAnew CA(10);CA* objtempobjA-clone();delete objA;std::coutobjtemp-value;delete objtemp;return 0; } Prototype 模式的应用场景在于你拿到一个 Base* 它指向某个 Derived 对象你想克隆出 Derived 对象但代码中不写出 Derived 的具体类型因为有很多派生类这种情况下你用构造函数是搞不定的就需要Prototype 模式了。 原型模式的作用 1、基本就是你需要从A的实例得到一份与A内容相同但是又互不干扰的实例的话就需要使用原型模式。 2、用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象。这个其实和C的拷贝构造函数的作用是相似的但不相同实际上就是动态抽取 当前对象运行时的状态。 Clone方法 关于clone方法 在说明clone方法之前需要对值传递和引用传递有个初步的了解 其中需要注意的是第三条 1基本数据类型传值对形参的修改不会影响实参 2引用类型传引用形参和实参指向同一个内存地址同一个对象所以对参数的修改会影响到实际的对象 3String, Integer, Double等immutable的类型特殊处理可以理解为传值最后的操作不会修改实参对象。其本质上还是引用传递只不过这些类型是不可变类可以理解为传值 在对值传递和引用传递有个初步了解之后我们开始讲解clone方法。 使用clone方法的步骤 1、实现clone的类首先需要继承Cloneable接口以此接口是一个标识接口没有任何接口方法 2、在类中重写Object类的clone方法 3、在clone方法中调用super.clone 这样就可以得到实现clone类的的一个Object对象的复制但这存在一个问题如果这个类中还存在引用类型怎么办在就要对浅复制和深复制说明一下了。 浅复制和深复制 1、类中的成员皆为基本数据类型使用浅复制 2、类中的成员有引用类型此时需注意String, Integer, Double等immutable的类型特殊看待不当成引用类型使用深复制 浅复制和深复制的使用依据实际情况而定 浅复制被复制对象的所有变量都含有与原来对象相同的值引用变量仍然指向原来的对象 深复制被复制对象的所有变量都含有与原来对象相同的值引用引用变量指向被复制对象的新变量 原型模式的优势 一.为什么不用new直接新建对象而要用原型模式 首先用new新建对象不能获取当前对象运行时的状态其次就算new了新对象在将当前对象的值复制给新对象效率也不如原型模式高。 二.为什么不直接使用拷贝构造函数而要使用原型模式 原型模式与拷贝构造函数是不同的概念拷贝构造函数涉及的类是已知的原型模式涉及的类可以是未知的。 原型模式生成的新对象可能是一个派生类。拷贝构造函数生成的新对象只能是类本身。原型模式是描述了一个通用方法(或概念)它不管是如何实现的而拷贝构造则是描述了一个具体实现方法。 class base { public : base(); base(base obj); virtual ~base(); virtual base *clone() { return new base(*this) ; }; }; class derived : public base { public : derived(); derived( derived ); virtual base *clone(){return new derived (*this); } .... }; base *obj1 new base ; base *obj2 new derived ;//基类指针指向派生类对象怎样用基类指针创建一个新的派生类对象 用基类的拷贝构造函数显然不行。 base *obj3 obj1 .clone(); base *obj4 obj12.clone(); 适用场景 1.资源优化场景 类初始化需要消化非常多的资源这个资源包括数据、硬件资源等。 2.性能和安全要求的场景 通过new产生一个对象需要非常繁琐的数据准备或访问权限则可以使用原型模式。 3.一个对象多个修改者的场景 一个对象需要提供给其他对象访问而且各个调用者可能都需要修改其值时可以考虑使用原型模式拷贝多个对象供调用者使用。 缺点 1、配备克隆方法需要对类的功能进行通盘考虑这对于全新的类不是很难但对于已有的类不一定很容易特别当一个类引用不支持串行化的间接对象或者引用含有循环结构的时候。 2、实现原型模式每个派生类都必须实现 Clone接口。 3、逃避构造函数的约束。 参考资料 1  C clone()函数的用法   CSDN2 【Linux内核】Clone函数和Cloneable接口简要说明 3  IT职场笔记   博客园4  关于clone()方法   CSDN5 Pytorch中clone(),copy_(),detach(),.data的辨析与应用  知乎6 java中的clone_51CTO博客
http://wiki.neutronadmin.com/news/283925/

相关文章:

  • CMS源码就可以做网站吗wordpress 用户api
  • 宝思哲手表网站免费软件电视剧最全
  • 免费的软件网站抖音代运营合作策划书
  • 深圳网站设计 工作室小程序商城开发平台
  • 怎样给网站或者商品做推广史先生 网站建设
  • 网站页面设计内容网站风格确认书
  • 电商扶贫网站建设手机排行榜前十名
  • 安阳网站建设价格丹阳官方网站建站
  • 备案期间怎么访问网站企业建立网站需要
  • wordpress站点前台请求数过多wordpress 外贸 开发
  • 酒店建设网站的意义超酷网站
  • 有没有代做模型的网站大数据营销精准营销
  • 杭州网站推广优化公司免费的短视频app大全下载
  • 游戏网站服务器租用淘词神器
  • 网站后台口令网页的后台管理系统
  • 泽成seo网站排名963中华室内设计网
  • 网站制作公司网站源码群晖wordpress性能
  • 制作网站建设的公司简单个人网站模板
  • 做本地分类信息网站赚钱吗图书网站开发介绍
  • 优秀企业网站欣赏wordpress 站内链接
  • 怎样给网站做国内网站建设的趋势是怎样的
  • 360搜索怎么做网站自然优化如何给网站增加内链
  • 如何在国外社交网站上做原单外贸大多数软件仍然是定制开发的
  • 手机端快速建站工具旅游公共信息服务网站建设及服务质量标准
  • html网站模板免费网站后台用什么开发
  • 网站解决方案设计企业网站建设费用入什么科目
  • 做电影网站涉及的侵权问题网站建设现在什么服务器比较好
  • 网站建设百度知道安卓编程软件
  • 网站建设合同 技术合同域名是不是网址的地址
  • 建材 东莞网站建设谁有做爰网站号