首页 > 其他分享 >每日随笔——原型模式

每日随笔——原型模式

时间:2023-11-11 23:23:21浏览次数:32  
标签:arr 克隆 double 每日 length Vector 原型 array 随笔

[实验任务一]:向量的原型

用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。

实验要求:

1.画出对应的类图;

2.提交源代码(用C++完成);

3.注意编程规范。

类图

 

源码:
#include<cmath>
#include<iostream>
using namespace std;

class Vector{
private:
    double *array =new double[4];
    double length;
public:
    Vector(double arr[4])
    {
        this->array[0] = arr[0];
        this->array[1] = arr[1];  
        this->array[2] = arr[2];
        this->array[3] = arr[3];
        this->length = sqrt(((arr[0] - arr[1])*(arr[0] - arr[1])) + ((arr[2] - arr[3])*(arr[2] - arr[3])));
    }
    ~Vector()
    {
        delete[]array;
        this->length = 0;
    }
    Vector* clone()
    {
        return new Vector(*this);
    }

    Vector(const Vector& vector)
    {
        //浅克隆
        this->array = vector.array;
        this->length = vector.length;

    }
    void show()
    {
        cout << "向量长度:" << this->length << endl;
    }
};
int main()
{
    double s[4] = { 1, 2, 3, 4 };
    Vector* v1 = new Vector(s);
    Vector* v2 = v1->clone();
    v1->show();
    v2->show();
    return 0;
}

 

标签:arr,克隆,double,每日,length,Vector,原型,array,随笔
From: https://www.cnblogs.com/jiacheng-712/p/17815809.html

相关文章

  • 每日总结(补11.10)
    今日收获今天主要是在准备11号的比赛啦~下午坐高铁到邯郸啦~看到了好大的雪~我们几个商量题目到12点多了~希望明天取得好成绩嘞~明天预计希望比赛取得好成绩!!......
  • 将博客园或者csdn文章复制到自己随笔中
    csdn或者博客园中中有很多优秀的文章,自己习惯在博客园记录,为了便于之后浏览,习惯复制到博客园收藏。问题是csdn中复制全文,在博客园编辑器(TinyMCE编辑器)中粘贴时,图片无法直接粘贴过来,图片多的时候比较麻烦。怎样直接复制粘贴全文?参考:https://www.cnblogs.com/c2soft/articles......
  • 11.11每日总结
    今天制作了调查的表格,明天打算进行调查。 姓名:性别:□男□女学院:电话:请选择三在□画R:□学费和教材       □食品和饮料        □住房和生活用品   □交通费用         □娱乐和休闲活动    □通信和互联网费......
  • 2023.11.11——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.mybatis明日计划:学习......
  • 11.10每日总结
    完全引入//1.安装依赖-生产依赖npminstallelement-ui-S12//main.jsimportVuefrom'vue';importElementUIfrom'element-ui';//2.1引入结构import'element-ui/lib/theme-chalk/index.css';//2.2引入样式importAppfrom'./App.vue';Vue.us......
  • js常见的继承方式包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继
    js常见的继承方式包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承,以及ES6新增的class继承,但不包括关联继承https://www.cnblogs.com/Leophen/p/11401734.html构造函数继承是每次继承都会把父类的所有属性方法全部拷贝一份,而对于公用的方法......
  • 每日总结31
    软件设计                 石家庄铁道大学信息学院 实验10:组合模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中......
  • 每日总结20231110
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,天气很冷,还下雪来着,所以不愿意出被窝,所以上午下午赖床来着。2、今天晚上进行了C#的相关练习,对C#也有了一定的理解了。3、今天晚上打算复习复习数学,明天有考试,加油,加油,加油!......
  • for…in 遍历对象会把原型遍历出来不被推荐
    for...in的特点:1.按照从小到大,优先迭代数字属性;2.会迭代“私有”以及“原型链上(公有)”所有“可枚举”的属性:它的循环会去原型链上找,非常消耗性能3.只能迭代“可枚举”的属性,不可枚举的拿不到4.不能迭代“Symbol类型”的属性for…in遍历对象会把原型遍历出来不被推荐......
  • 学习随笔(设计模式:策略模式)
     内容:今天学习了设计模式中的策略模式。1.策略模式是一种定义一系列算法的方法,这些算法都是相同的工作,只是实现不同,通过以相同的方式调用不同的算法,减少算法之间的耦合度。    2.这种设计模式可以用来封装任何类型的规则,需求中在不同时间应用不同的业务规则,就可以......