深浅拷贝问题

inspire2010 inspire2010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面的程序有点问题,关于深浅拷贝的,执行过程有点问题,大家看看:
#include<iostream>
using namespace std;

class Point
{
public:

Point()
{
X=Y=0;
cout<<"Default Constructor called."<<endl;
}

Point(int xx,int yy)
{
X=xx;
Y=yy;
cout<< "Constructor called."<<endl;
}
~Point()
{
cout<<"Destructor called."<<endl;
}
int GetX() {return X;}
int GetY() {return Y;}
void Move(int x,int y)
{ X=x; Y=y; }
private:
int X,Y;
};

class ArrayOfPoints
{
public:
ArrayOfPoints(int n)
{
numberOfPoints=n;
points=new Point[n];
}

~ArrayOfPoints()
{ cout<<"Deleting..."<<endl;
numberOfPoints=0;
delete[] points;
}

Point& Element(int n)
{
return points[n];
}
private:
Point *points;
int numberOfPoints;
};

void main()
{
int number;
cout<<"Please enter the number of points:";
cin>>number;
ArrayOfPoints pointsArray1(number); //创建对象数组
pointsArray1.Element(0).Move(5,10); //通过指针访问数组元素的成员
pointsArray1.Element(1).Move(15,20); //通过指针访问数组元素的成员

ArrayOfPoints pointsArray2(pointsArray1); //创建对象数组副本
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.Element(0).Move(25,30); //通过指针访问数组元素的成员
pointsArray1.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;
}
...全文

相关推荐

js中的深浅拷贝问题简析

主要给大家介绍了关于js中的深浅拷贝问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

weixin_38660624

浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题

下面小编就为大家带来一篇浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38672807

浅谈Python对内存的使用(深浅拷贝)

本文主要研究的是Python对内存的使用(深浅拷贝)的相关问题,具体介绍如下。 浅拷贝就是对引用的拷贝(只拷贝父对象) 深拷贝就是对对象的资源的拷贝 >>> a=[1,2,3,'a','b'] >>> b=a >>> b [1, 2, 3, 'a', 'b'] >>> a [1, 2, 3, 'a', 'b'] >>> id(a) 3021737547592 >>> id(b) 3021737547592 >>> a.append('c') >>> a [1, 2, 3, 'a', 'b', 'c'] >>> b [1, 2, 3, 'a', 'b', 'c'] >>> b.append

weixin_38546622

JS深浅拷贝详解[代码]

本文详细讲解了JavaScript中的深拷贝与浅拷贝概念及其区别。文章首先概述了深浅拷贝在实际开发中的重要性,并指出错误使用可能导致的问题。接着介绍了JavaScript的数据类型,包括基本数据类型和引用数据类型,以及它们在内存中的存储方式。文章深入探讨了深浅拷贝的实现原理,浅拷贝仅复制一层属性,而深拷贝则递归复制所有层级。此外,还提供了多种实现深浅拷贝的方法,如slice()、concat()、JSON.parse(JSON.stringify(obj))等,并通过代码示例展示了它们的使用场景和效果。最后,文章通过Vue.js中的实例说明了深浅拷贝在实际项目中的应用,强调了深拷贝在避免组件间数据共享问题中的作用。

cloud

javascript简单实现深浅拷贝过程详解

主要介绍了javascript简单实现深浅拷贝过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

weixin_38708841
评论 6
收藏 已收藏
分享
返回顶部
inspire2010
新手乐园 33,315 成员 41,769 内容