6
5のルール-それを使用するかどうか?
3 のルール(新しいc ++標準の5のルール)の状態: デストラクタ、コピーコンストラクタ、またはコピー割り当て演算子のいずれかを明示的に宣言する必要がある場合は、おそらく3つすべてを明示的に宣言する必要があります。 しかし、一方で、マーティンの「クリーンコード」は、すべての空のコンストラクターとデストラクターを削除することを推奨しています(293ページ、G12:Clutter)。 実装されていないデフォルトのコンストラクタはどのような用途に使用されますか?役目を果たすのは、意味のないアーティファクトでコードを混乱させることです。 だから、これらの2つの反対意見をどのように扱うのですか?空のコンストラクタ/デストラクタを実際に実装する必要がありますか? 次の例は、まさに私が意味することを示しています。 #include <iostream> #include <memory> struct A { A( const int value ) : v( new int( value ) ) {} ~A(){} A( const A & other ) : v( new int( *other.v ) ) {} A& operator=( const A & other ) …