C++ 对象的浅复制
1、对象的浅复制 在C++语言中,同一个类所定义的不同对象之间进行赋值操作时,如果,类中没有定义复制构造函数, 那么,系统就会将属性一个一个地复制给赋值的目标对象,而这个操作就称为(对象的浅复制)。 当进行了(对象的浅复制)时,如果,类中有分配资源,例如:new操作,或打开文件的, 在释放已分配资源时,只需要对其中一个对象执行一次释放操作就可以了,因为,进行过(浅复制)的对象, 它们所分配的资源所指向的内存空间或文件都是相同的。
而什么是(复制构造函数),将在下一章结合(深复制)为大家进行说明。
2、 例子: class Human //定义了人类 { char *name; Human(int a) //带参数的构造函数 { Age = a; name = new char[50]; } };
Human ZS; //定义了对象ZS Human LS; //定义了对象LS ZS = LS; //同一个类所定义的两个对象进行了赋值 void main() { delete ZS.name; //正确,通过delete释放ZS对象中的name属性所指的内存空间 delete LS.name; //错误,因为,name所指向的内存空间已经在上一行被释放了
不要停留在理论学习上,尽快转到真实环境进行代码编写实践,请下载下方的训练环境。 |