コピーの構造と割り当てを禁止

532 ワード

C++実装では、クラスによってはユニークなインスタンスのみを保持することが望ましい場合があるため、設計上はコピー構造と付与を禁止します.
muduoには陳碩大神がよく使われていますが、実現も簡単です.
#include 

class NoCopyable{
	protected:
		NoCopyable(){
		}
		virtual ~NoCopyable(){
		}
	private:
		NoCopyable(const NoCopyable&);
		const NoCopyable& operator=(const NoCopyable&);
};

class A : private NoCopyable{
	
};

int main(){
	A a;
	A b;
	a = b;
}

NoCopyableはコピー構造と付与関数を私有化し,A私有はNoCopyableを継承し,自然にNoCopyableの両方のインタフェースも継承し(実現する必要はない),これが役に立つ.
自分でテストして、