重複の可能性:
コピー アンド スワップ イディオムとは何ですか?
C ++でコンストラクターと=演算子のオーバーロードをコピーします:共通関数は可能ですか?
コピー コンストラクターと代入演算子の本体に、実際にコードを重複させずに (関数ヘッダーを除いて) 同じコードを含める方法はありますか?
重複の可能性:
コピー アンド スワップ イディオムとは何ですか?
C ++でコンストラクターと=演算子のオーバーロードをコピーします:共通関数は可能ですか?
コピー コンストラクターと代入演算子の本体に、実際にコードを重複させずに (関数ヘッダーを除いて) 同じコードを含める方法はありますか?
1 つの一般的な方法は、コピー アンド スワップ イディオムです。スワップ操作を実装する必要がありますが、正しく実行すると、例外安全な割り当てができるという追加の利点があります。
関数を作成する
init(various parameters you need){
...
//common initializing process
}
次に、すべてのコンストラクター、コピー、代入演算子からこの関数を呼び出します
機能を別のメソッドに配置し、コピー コンストラクターと代入演算子コードの両方から呼び出します。
または、コピー コンストラクターから代入演算子を呼び出すこともできます。