をコピーします。私は2つのtreetype要素を持っている場合C++は、バイナリツリー
BinaryTree& operator=(const BinaryTree &rhs){
if (&rhs == this){
return *this;
}
_Destroy (m_root);
m_root = _Copy (rhs.m_root);
return *this;
}
を、その後tree_1
とtree_2
。
私は
tree_2 = tree_1;
を行うと、私はtree_1
からtree_2
にすべての要素をコピーします。 この時点で、tree_2
に新しいノードを追加します。 tree_1
も変更されます。 tree_2
の構造を変更するだけで、tree_1
は同じままになる新しい再帰コピー機能を設定するにはどうすればよいですか?
使用しているdefultコピーCTOR;
なぜコピーコンストラクタを定義するのではなく、 '_Copy'関数を定義していますか?一般に、代入演算子を定義する場合は、コピーコンストラクタも定義する必要があります。また、ディープコピー/割り当てのセマンティクスを定義する必要がある場合は、関連する各タイプに対して行う必要があります。また、このコードはメモリリークがいっぱいです。 –