关于深浅拷贝的问题

it2022-05-05  151

关于深浅拷贝的问题

技术这条路上的知识点很多,以目前的基础,看过的很多都掌握不了,下次用的时候唯一剩下的是“哦,这个大概和什么有关系”,然后回头去查。现在的问题是,如果我做一件事情,时间有限,那么我不可能在做的过程当中又去重温,或者说这个重温的过程越短越好。

 

写博是解决这个困扰的尝试之一。以上,题外。

 

key word:拷贝构造函数 深拷贝

 

参考一下网摘。因为对于大部分普通对象,拷贝容易做到,(int b = 0,int a=b)而对于包含多个成员的类对象(classname b(param1,param2...),class a = b),这点就需要拷贝构造函数来完成,这个函数一般的类都不会写,因为系统提供了默认的方式。但是如果类中有指向堆资源的指针成员,那么在默认的拷贝函数工作方式下,可能造成析构时的混乱——可能源对象析构之后,拷贝的目标对象的这个成员将出现问题。因此需要覆盖默认的拷贝函数来手动分配堆内存。

除此之外,需要注意的问题还有无名对象的情况,形如classname a = classname(param1,param2...)的情况,以及classname &a = classname(param1,param2...)的情况,这种情况系统是不会调用拷贝构造函数的。

 

另外,关于用简单的win32控制台程序试验原理性知识的方法。

 

一是用好cin cout来表达,注意一下cin.get()这种让程序阻塞的方式,这样便于观察。

 

 

posted on 2010-05-19 10:59 Duckhyx 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yellowswan/archive/2010/05/19/1738970.html

相关资源:js中的深浅拷贝问题简析

最新回复(0)