测试主题:浅拷贝与深拷贝
1. 调用自定义构造函数测试
1)调用语句形式;
类中定义了拷贝构造函数,使用下列两种形式均调用拷贝构造函数;
String s4(s2);
String s2 = s1;
2)深拷贝原理测试:普通变量拷贝、指针变量拷贝;
String s5; //调用构造函数String(); 整型变量 s5.len 已经被分配了内存空间;而s5.Str指针所指向的空间为NULL,故描述其没有分配内存空间;
s5 = s2; //结构式拷贝,不调用拷贝构造函数;只是将对象s2的值去覆盖对象s5的值,s5.len 和 s5.Str被覆盖;
2. 调用默认拷贝构造函数的测试(思考:什么情况下调用的是默认拷贝构造函数?)
1)调用语句形式
String s2 = s1; // 类中未定义任何拷贝构造函数,则该语句执行时,系统会调用默认拷贝构造函数;
2)调用原理
把初始值对象的每个数据成员的值依次赋值到新建立的对象中。
3. 什么是结构式的拷贝?
结构变量间的赋值称为结构式拷贝。属于浅拷贝。
4. 对象赋值语句的调用形式?
在对象进行赋值时,拷贝构造函数不被调用。此时进行的是结构式的拷贝。

浙公网安备 33010602011771号