最近对对象赋值做了小测试
可以验证这样object2的a2指向的是object1的a1,并非object2的a1,因此建议不要使用默认的对象赋值,最好使用自定义赋值。
一点补充:如果是指向动态分配内存的pointer之类,直接使用默认的operator=就悲剧了,因为它是member to member的直接copy。在析构时会调用两次,这点从上述代码例子也可以看出来。
最近对对象赋值做了小测试
可以验证这样object2的a2指向的是object1的a1,并非object2的a1,因此建议不要使用默认的对象赋值,最好使用自定义赋值。
一点补充:如果是指向动态分配内存的pointer之类,直接使用默认的operator=就悲剧了,因为它是member to member的直接copy。在析构时会调用两次,这点从上述代码例子也可以看出来。