美文网首页
浅|深 复制

浅|深 复制

作者: Vincy_ivy | 来源:发表于2019-05-31 20:16 被阅读0次

浅复制

//只写main函数

int main(){
    int count;
    cout<<"Please enter the count of points:";
    cin>>count;
    ArrayOfPoints pointsArray1(cout);//count是之后element()括号里的个数
    pointArray1.element(0).move(5,10);
    pointArray1.element(1).move(15,20);
    ArrayOfPoints pointArray2=pointArray1;//创建对象副本
    cout<<"Copy of pointsArray1:"<<endl;
    cout<<"Point_0 of array2:"<<pointsArray2.element(0).getX()<<","<<pointsArray2.element(0).getY()<<endl; 
    cout<<"Point_1 of array2:"<<pointsArray2.element(1).getX()<<","<<pointsArray2.element(1).getY()<<endl; 
    
    //改变 pointsArray1
    pointArray1.element(0).move(25,30);
    pointArray1.element(1).move(35,40);
    cout<<"After the moving of pointsArray1:"<<endl;
    cout<<"Point_0 of array2:"<<pointsArray2.element(0).getX()<<","<<pointsArray2.element(0).getY()<<endl; 
    cout<<"Point_1 of array2:"<<pointsArray2.element(1).getX()<<","<<pointsArray2.element(1).getY()<<endl; 
    return 0;
}

//结果是

Copy of pointsArray1:
Point_0 of array2:5,10
Point_1 of array2:15,20
After the moving of pointsArray1:
Point_0 of array2:25,30
Point_1 of array2:35,40

我们可以看到一旦pointArray1发生了改变pointArray2也会改变,所以这是浅复制。

 
 

深复制

class ArrayOfPoints{
public:
    ArrayOfPoints(const ArrayOfPoints &v);
};

ArrayOfPoints::ArrayOfPoints(const ArrayOfPoints &v){
    size=v.size;
    points=new Point[size];//相当于vector
    for(int i=0;i<size;i++){
        points[i]=v.points[i];
    } 
}

相关文章

  • 浅|深 复制

    浅复制 //只写main函数 //结果是 我们可以看到一旦pointArray1发生了改变pointArray2也...

  • JS深浅拷贝

    浅拷贝 浅拷贝的意思就是只复制引用,而未复制真正的值。 深拷贝 深拷贝就是对目标的完全拷贝,不像浅拷贝那样只是复制...

  • 17.是否了解 深拷贝 和 浅拷贝 的概念,集合类深拷贝如何实现

    深拷贝内存拷贝 浅拷贝指针拷贝 浅拷贝 深拷贝 集合的浅复制 (shallow copy) 集合的浅复制有非常多种...

  • Javascript对象的深浅拷贝

    开门见山,有人叫对象的复制为深复制浅复制,也有人叫深拷贝浅拷贝。其实都是copy。 深拷贝(递归复制,复制所有层级...

  • java 对象的拷贝

    拷贝:即复制 对象拷贝:即对象复制 java 对象拷贝分类:浅拷贝、深拷贝 java 对象的浅拷贝和深拷贝针对包含...

  • iOS全解11:特殊问题

    1、浅拷贝和深拷贝的区别? 浅拷贝:只复制指向对象的指针,指针指向同一个地址,而不复制引用对象本身。深拷贝:复制引...

  • 浅拷贝和深拷贝

    本文参考:JavaScript中的浅拷贝和深拷贝js 深拷贝 vs 浅拷贝深入剖析 JavaScript 的深复制...

  • 设计模式 - 原型模式

    注意深复制与浅赋值的问题 C#中如果需要实现深复制,必须实现 ICloneable 接口。

  • 拷贝与内存管理

    一、关于深拷贝和浅拷贝的总结 理解 本质上我认为区别在于复制是是指针复制(浅拷贝)还是复制到新的地址上(深拷贝) ...

  • angular核心对象angular上的方法

    bootstrap element copy(深复制) extend(浅拷贝) merge(深拷贝) equals...

网友评论

      本文标题:浅|深 复制

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