• 原型模式和C++的拷贝构造函数有什么区别


    都是基于个人理解,本文是为了帮助记忆。

    相同点:原型模式和拷贝构造函数都是要产生对象的复制品。

    不同点:原型模式实现的是一个clone接口,注意是接口,也就是基于多态的clone虚函数。也就是说原型模式能够通过基类指针来复制派生类对象。拷贝构造函数完不成这样的任务。

                   原型模式的核心是克隆,构造函数只是克隆的一个办法而已。

    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();

  • 相关阅读:
    CentOS7 安装 mysql
    redis简介以及redis集群配置
    分布式布局简述
    字符串
    接口
    接口回调
    java关键字之static
    java关键字之final
    java关键字之abstract
    memcache的配置
  • 原文地址:https://www.cnblogs.com/jylz/p/10648439.html
Copyright © 2020-2023  润新知