首页 > 其他分享 >11.04实验6:原型模式

11.04实验6:原型模式

时间:2025-01-07 23:56:50浏览次数:1  
标签:begin end cout 11.04 len 实验 double 原型 cp

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解原型模式的动机,掌握该模式的结构; 2、能够利用原型模式解决实际问题。   [实验任务一]:向量的原型 用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 实验要求: 1. 画出对应的类图;   2. 提交源代码(用C++完成); #include <tchar.h> #include<iostream> using namespace std; class AbstractVector { public: virtual AbstractVector* Clone() const = 0; virtual void showData() = 0; public: double* len;//向量长度' double begin; double end; }; class vector :public AbstractVector { public: vector(double beg, double en) { begin = beg; end = en; len = new double; if (end >= begin) *len = end - begin; else *len = begin - end; } vector(const vector& cp) { int cho = 0; begin = cp.begin; end = cp.end; cout << "深克隆输入1,浅克隆选择2" << endl; cin >> cho; if (cho == 1) { len = new double; *len = *(cp.len); } else len = cp.len; } void showData() { cout << "向量的长度为" << *len << endl; } AbstractVector* Clone() const { return new vector(*this); } ~vector() { delete len; } }; int _tmain(int argc, _TCHAR* argv[]) { AbstractVector* p = new vector(0, 10); AbstractVector* p1 = p->Clone(); cout << "p的长度为"; p->showData(); cout << "p1的长度为"; p1->showData(); if (p->len == p1->len) { cout << "这是浅克隆" << endl; cout << "被克隆对象的地址为" << p->len << endl; cout << "克隆后的地址为" << p1->len << endl; } else { cout << "这是深克隆" << endl; cout << "被克隆对象的地址为" << p->len << endl; cout << "克隆后的地址为" << p1->len << endl; } 3.注意编程规范。

标签:begin,end,cout,11.04,len,实验,double,原型,cp
From: https://www.cnblogs.com/kongxiangzeng/p/18658685

相关文章

  • 11.05实验7:单例模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解单例模式的动机,掌握该模式的结构; 2、能够利用单列模式解决实际问题。[实验任务一]:学号的单一 仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求: 1.画出对应的类图; 2.提交源......
  • 11.07实验8:适配器模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解适配器模式的动机,掌握该模式的结构; 2、能够利用适配器模式解决实际问题。[实验任务一]:双向适配器 实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求: 1.画出对应的类图; 2.提交源......
  • 11.09实验9:桥接模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求:1.画出对应的......
  • 11.10实验10:组合模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。实验要求:1.文件的执行不需真正实现,只需简单提示即可; 2.提......
  • 11.1实验3:工厂方法模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解工厂方法模式的动机,掌握该模式的结构; 2、能够利用工厂方法模式解决实际问题。[实验任务一]:加密算法 目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgorithm)国际......
  • 11.02实验4:抽象工厂模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解抽象工厂模式的动机,掌握该模式的结构; 2、能够利用抽象工厂模式解决实际问题。[实验任务一]:人与肤色 使用抽象工厂模式,完成下述产品等级结构: 实验要求: 1.画出对应的类图; 2.提交源代码;Black.j......
  • Ensp基础实验---同网段PC以及网关之间的通信
        通过安装ENSP,可以模拟搭建网络仿真环境,初步了解ENSP之后,可以进行一些简单的网络拓扑搭建,通过对相关设备的配置,实现网络畅通的目的    此次模拟的是同一个网段内,两台PC之间的通信情况,同时选用路由器的一个指定接口,用作整个网络网段的网关,检验PC与网关之间的......
  • 9.26实验1:UML与面向对象程序设计原则
    [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。1、关联关系   2、聚合关系   3、依赖关系   4、组合关系   [实验任务二]:单一职责原则 登录模块在实际项目开发中很常见,请......
  • IPSEC实验汇总
    IPSEC实验汇总1.IKE主模式及预共享秘钥认证配置举例1.1配置参考如下:设备组网:A---B设备A设备B sysnameA sysnameB##interfaceLoopBack0interfaceLoopBack0 ipaddress2.1.1.1255.255.255.255 ipaddress3.1.1.1255.255.255.255##inte......
  • (免费送源码)计算机毕业设计原创定制:python+Django+MySQL Django实验室管理系统
    摘 要本论文主要论述了如何使用python语言、Django框架开发一个实验室管理系统,本系统将严格按照软件开发流程,进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析......