美文网首页C++设计模式
【C++设计模式】原型模式 浅拷贝

【C++设计模式】原型模式 浅拷贝

作者: 小鱼号的代码日记 | 来源:发表于2021-03-10 22:27 被阅读0次
/* 小鱼号的代码日志
 * 设计模式
 * 原型模式
 * 用原型实例指定创建对象的种类,并且
 * 通过拷贝这些原型,创建新的对象
 * 一个对象在创建另外一个可定制的对象
 * 无需知道创建的细节
 * 克隆羊
 */

#include<iostream>
#include<list>
using namespace std;

class Animal
{
public:
    Animal(string name,int age)
    {
        m_name = name;
        m_age = age;
    }
    Animal(const Animal& animal)
    {
        m_name = animal.m_name;
        m_age = animal.m_age;
    }
    void showInfo()
    {
        cout << "name:" << m_name << " age:" << m_age << endl;
    }
    virtual Animal* clone() = 0;
protected:
    string m_name;
    int m_age;
};

class Sheep:public Animal
{
public:
    Sheep(string name,int age) :Animal(name,age)
    {
    }
    Sheep(const Sheep& animal) :Animal(animal)
    {
    }
    Animal* clone()
    {
        return new Sheep(*this);
    }
};

void testPrototype()
{
    cout << "prorotype patterns" << endl;
    Animal* sheep = new Sheep("tom",12);
    sheep->showInfo();
    Animal* cloneSheep = sheep->clone();
    cloneSheep->showInfo();
}

相关文章

  • 初始设计模式之原型模式

    原型模式是什么? 原型模式怎么用?浅拷贝深拷贝 原型模式再理解 一、原型模式是什么? ​ 原型模式是一种创建型设计...

  • 【C++设计模式】原型模式 浅拷贝

  • 原型模式

    一、 原型模式 原型模式:用原型实指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 涉及浅拷贝与深拷贝问题。...

  • Android Kotlin 设计模式之原型模式

    前言 继续填坑,这次是原型模式 什么是原型模式 首先在java里面是存在深拷贝和浅拷贝的 深拷贝: 完全复制生成一...

  • 设计模式之原型模式

    设计模式之原型模式 Intro 简介 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 原...

  • 设计模式《原型模式》

    引言   回顾上一节我们讲的状态模式,这节我们来讲一下原型模式。和原型模式相关的2个概念:浅拷贝和深拷贝。 示例地...

  • 设计模式

    经典面试题 1)使用UML类图画出原型模式核心角色2)原型模式的深拷贝和浅拷贝是什么,并写出深拷贝的两种写法(重写...

  • 还为那些设计模式烦恼吗-原型模式

    原型模式 浅拷贝 调用: 结果: 但是,假如这样调用: 结果: 上述就是浅拷贝 深拷贝 就是将上面代码的标记1处,...

  • 创建型设计模式——原型模式

    定义 原型模式是一个创建型的设计模式。用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式多用于...

  • 原型模式

    Android进阶之设计模式 原型模式 定义: 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. 使...

网友评论

    本文标题:【C++设计模式】原型模式 浅拷贝

    本文链接:https://www.haomeiwen.com/subject/homgqltx.html