设计模式--原型模式

2023-11-18

    原型模式:属于创建型模式
    基本原理:又称为克隆模式,拷贝本身对象。可以直接使用语言中的拷贝构造。
    主要流程:在构建对象的时候实现一个对本身的拷贝函数。
    特别注意:要有对应的销毁方法。

#include <iostream>
using namespace std;

//对象基类,可以对有共性的对象统一要求功能函数
class prototype
{
public:
    prototype(){}
    virtual ~prototype(){}
    virtual prototype * clone() = 0;
};
//具体的对象及实现拷贝
class concreateprototype1 : public prototype
{
public:
    concreateprototype1();
    concreateprototype1(const concreateprototype1&);//拷贝构造函数
    virtual ~concreateprototype1();
    virtual prototype* clone();
private:
    int x = 0;
};
concreateprototype1::concreateprototype1()
{
    cout<<" concreateprototype1 create !"<<endl;
}
concreateprototype1::concreateprototype1(const concreateprototype1& contype)
{
    cout<<" cclone concreateprototype1 "<<endl;
}
concreateprototype1::~concreateprototype1()
{
    cout<<" destruction of concreateprototype1"<<endl;
}
prototype * concreateprototype1::clone()
{
    return new concreateprototype1(*this);
}

int main()
{
    prototype *ptype = new concreateprototype1();
    prototype *copytype1 = ptype->clone();
    delete ptype;
    delete copytype1;
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设计模式--原型模式 的相关文章

  • Centos 安装Vsftpd

    1 安装VSFTP 1 root localhost yum y install vsftpd 2 配置vsftpd conf文件 root localhost vi etc vsftpd vsftpd conf 001 002 003 0

随机推荐

  • tkinter绘制组件(12)——表格

    tkinter绘制组件 12 表格 引言 构思 外观 绘制方法 布局 函数结构 绘制表头 绘制表格内容 获取高度和重绘 完整代码函数 效果 测试代码 最终效果 2021 12 12新样式 2022 1 2新样式 2022 7 3新功能 补充
  • 知识图谱实现步骤和用到的方法

    PDF 下载 https download csdn net download nrlovestudy 10938925 参考资料 1 知识图谱入门 一 知识图谱与语义技术概览 https blog csdn net pelhans art
  • 【CSS】background相关属性深入学习

    最近一次需求中对于background相关的一些属性使用较多 总结下 希望提高下次的开发效率 background属性 background color background image background position backgr
  • .NET面试题——第7篇 C#类和对象

    1 什么是类和对象以及关系 对象 一种具有状态 属性 和行为 方法 的编程实体 用于描述现实世界的某个具体事物 类 具用一系列对象共同特征和行为的通用类型 对象和类的关系 类是对象的抽象 而对象是类的具体实例 类是抽象的 不占用内存 而对象
  • go爬虫框架colly的精简讲解

    1 拉取软件包 go get github com gocolly colly 2 创建colly的收集器 colly NewCollector 可以在创建的时候进行配置 c colly NewCollector colly AllowUR
  • Java 断点调试 循环调试

    java断点调试 以eclipse为例 1 基础调试 这里都是一些基础 除了最后一个都十分常用 名称 快捷键 作用 Resume F8 运行至下一断点 Step Into F5 进入方法 Step Over F6 运行完当前语句 User
  • PCL 点云按高程渲染颜色

    目录 一 算法原理 二 代码实现 三 结果展示 四 CloudCompare 五 备注 一 算法原理 首先按照Z轴方向求取所在点云的高程极值 包括高程最大值与最小值 计算高程中值 然后选取渲染的红 绿 蓝三种颜色的值 最后 自上而下 为红绿
  • NBA的字母哥如何拿到2415万美金年薪

    前言 NBA是世界上最成功的体育联盟之一 为了制定合理的运作规范 联盟会与球员工会签署劳资协议 协议里规定了球队的工资帽 一支球队球员工资总额的上限 顶薪 球员薪水的上限 底薪 球员的最低薪水 和其他规范 2011年 经历了停摆事件 联盟和
  • 一张图理清ASP.NET Core启动流程

    1 引言 对于ASP NET Core应用程序来说 我们要记住非常重要的一点是 其本质上是一个独立的控制台应用 它并不是必需在IIS内部托管且并不需要IIS来启动运行 而这正是ASP NET Core跨平台的基石 ASP NET Core应
  • JS 数组定义及详解

    一 数组简介 1 什么是数组 数组是值的有序集合 每个值叫做元素 每个元素在数组中都有数字位置编号 也就是索引 JS中的数组是弱类型的 数组中可以含有不同类型的元素 数组元素甚至可以是对象或其他数组 例如 var arr 1 true nu
  • kubernetes运维---calico之ipip模式抓包分析

    一 calico介绍 Calico是Kubernetes生态系统中另一种流行的网络选择 虽然Flannel被公认为是最简单的选择 但Calico以其性能 灵活性而闻名 Calico的功能更为全面 不仅提供主机和pod之间的网络连接 还涉及网
  • 功能实现:Unity中一个动画,只播放中间指定的一截,而且循环播放

    一 要播放的动画 直播中间一截 如图 总的动画为长度为2分钟零8秒 二 Button和对应事件 三 事件的代码 在Start 里面绑定 private void Awake myAnim animGo GetComponent
  • Flutter实现app自动升级

    话不多说 有过开发过移动应用的人都应该自动升级流程 首先获取本地应用版本 然后从服务器获取线上移动应用版本号作比较是否升级 第一步获取版本信息 API https pub dev packages package info 获取应用版本号
  • iview on-change用法

    原地址 https segmentfault com q 1010000011589626 iview框架select选择框on change事件如何返回当前选中的值 这是文档中的解释 on change 选中的Option变化时触发 默认
  • C++类与封装实例说明

    众所周知 C 具有三大特性 分别为封装 继承 多态 今天有位同学问到我应该如何去理解 我翻了翻笔记本 找到以前上课时学到的案例来解释 首先 成员函数存在希望公开或不希望公开的属性 这也构成了定义成员函数访问级别的三项 1 public 公开
  • 架构师--IT策略灵魂的创造者

    http blog csdn net aspop archive 2006 01 21 585823 aspx 在比尔 盖茨的众多称谓中 据说他更偏爱 首席软件架构师 同样 在网易创始人丁磊名字前 也有 首席架构师 这样的称谓 对于企业来说
  • IDEA国际化资源Key无法全局重命名的解决方案

    一 前言 最近在开发中使用到了HibernateValidator进行入参校验以及错误消息的国际化支持 大家应该都知道在使用HibernateValidator进行校验的时候 我们只需在需要在校验的变量上添加相应的注解 同时在message
  • Flutter 应用程序更新

    Flutter 应用程序更新 原文 https medium com flutter community in app update the flutter way 2f25e4a02c02 前言 当您推出应用程序的新版本时 您希望您的用户
  • CSS3背景渐变

    我们经常可以看到有些背景色并不是纯色 而是好看的渐变色 css3知我懂我 给我们提供了制作渐变背景色的属性 渐变主要包括线性渐变和径向渐变 接下来逐一介绍用法 1 线性渐变 线性渐变 linear gradients 表示颜色沿着一条直线过
  • 设计模式--原型模式

    原型模式 属于创建型模式 基本原理 又称为克隆模式 拷贝本身对象 可以直接使用语言中的拷贝构造 主要流程 在构建对象的时候实现一个对本身的拷贝函数 特别注意 要有对应的销毁方法 include