摘要: 练习13.23 练习13.24 1. 如果没有定义析构函数的话,会造成内存泄露。因为,成员变量ps是通过new操作在堆上显式分配出的一段内存,需要使用delete显式的去释放。 2. 如果没有定义拷贝构造函数的话,可能会造成二次释放,或使用悬空指针的情况。因为,在合成的赋值运算符中,让不同实例的ps 阅读全文
posted @ 2017-09-01 20:28 五月份小姐 阅读(500) 评论(0) 推荐(0)
摘要: 练习13.22 上述的是具有类值行为,以前做的练习是具有类指针行为; 阅读全文
posted @ 2017-09-01 19:10 五月份小姐 阅读(170) 评论(0) 推荐(0)
摘要: 练习13.18 练习13.19 需要,如果采用合成的拷贝控制,那么拷贝就是被拷贝成员的值,如果出现同名情况,就无法通过ID分辨两个人。 练习13.20 由于我们没有给这两个类定义拷贝控制,所以一般情况下是编译器自己合成相关的拷贝控制,因为我们没有在这两个类中定义不可能拷贝、赋值或销毁类的成员,所以该 阅读全文
posted @ 2017-09-01 18:55 五月份小姐 阅读(207) 评论(0) 推荐(0)
摘要: 练习13.14 程序输出的是number类的mysn成员,但是number使用的是合成的拷贝控制成员,所以输出的结果都是一样,都是对象a的mysn数据成员。 练习13.15 如果在自定义的拷贝构造函数中改变了mysn的值,那么结果就会发生改变。 练习13.16 练习13.16 因为此时拷贝构造函数传 阅读全文
posted @ 2017-09-01 15:53 五月份小姐 阅读(293) 评论(0) 推荐(0)