たとえば、クラスを宣言したいが、クライアントがコピー コンストラクター (またはコピー代入演算子) を使用できないようにしたい
次の 2 つのどちらも、コピー コンストラクターの使用を許可しません。
1.
class Track
{
public:
Track(){};
~Track(){};
private:
Track(const Track&){};
};
2.
class Track
{
public:
Track(){};
~Track(){};
Track(const Track&)=delete;
};
これらの方法の 1 つは、他の方法よりも「より正確」ですか、それとも同等ですか? 副作用はありますか?
//Does not compile with both the above ways
int main()
{
Track l;
Track p(l);
}