쌍 문 동

导航

关于浅拷贝和深拷贝

讨论问题4.  深拷贝和浅拷贝

我们设计类,要考虑类的数据成员是什么,如何初始化(构造函数),如何对数据进行读、写操作,需要不需要写析构函数等。当类的数据成员是指针时,就必须写拷贝构造函数、析构函数和赋值运算符重载函数(在运算符重载那章讲)。因为指针只是个地址,类对象需要空间存放内容,即需要指针开辟空间(new,通常都是创建数组),里面放参数传过来的数据,析构函数释放空间(delete)。看这次作业的3题和4题,特别是数据成员和构造函数的写法。这种处理方法就是深拷贝。

使用深拷贝的原因是避免错误,见《C++Primer 》page447-448解释

 

补充说明:

  1. 定义类时,数据成员大多是私有的(讲到继承派生会看到基类数据成员定义为保护的这种情况),请不要定义数据成员为公有的。

  2. 大家在类中用get这种名字的成员函数时,函数的含义是得到值,需要return 值;类中用set这种名字的成员函数时,函数是为数据成员赋值,set函数类型是void

     

posted on 2020-04-15 11:06  쌍문동  阅读(100)  评论(0编辑  收藏  举报