- 类成员、对象成员相关涉及的逻辑(假设坐标类为父类,线段为子类):
如果坐标类含有一个默认构造函数(即不带参数的构造函数),那么它在实例化线段对象的时候可以不使用初始化列表;如果坐标类要求必须有xy传入,那么从线段类必须有xy传入,并使用初始化列表,当然,如果定义的量不是常量,也可以用一般的参数传递方式。
- 拷贝构造函数
- 浅拷贝:只是将数据成员的值进行拷贝
例1:这种浅拷贝的实现方式没有问题
例2:这种浅拷贝的实现方式就有问题了
这是因为arr1和arr2都指向同一块内存,在写入内存时会产生冲突,例如arr1写入内存后,arr2写入时会覆盖掉原有arr1的内容。或者,arr1释放掉内存后arr2就不能使用了
- 深拷贝
- 浅拷贝:只是将数据成员的值进行拷贝
- 总结:浅拷贝只是拷贝了数据的第一层地址,也就是最直接的地址,如果该地址指向的是一个指针,则会出现指向同一个内存位置的问题。