今儿搞定了俩bug,系统能正常通过test suite了,备忘一下。
1. 拷贝构造器漏拷了某field
这个的确很弱智…… 但是拷贝构造器在每次增减field的时候都要手动改,这个真麻烦……
就不能提供一个只要我没动的都自动拷一遍的拷贝构造器么……
2. 拷贝构造器中,成员变量中的父指针没有指向新对象
简单来说,就是
class A; class B { A *parent; }; class A { B b; } |
A在拷贝的时候,应该吧b这个成员的parent指针指向新的A……
A::A(const A& other) : b(other.b) ... { ... b.setParent(this); ... } |
不过实际上好像父指针不是一个好的模式?但是不用这个用啥呢…… 或者就注意点吧……