2021 시작

항목5 에서 일반 생성자는 막았지만 복사 생성자와 복사 대입 연산자를 막지 못한걸 기억하는가? 우리는

"컴파일러가 생성한 복사 함수는 기본 클래스에 대응한 버전을 만들어낸다" 라는 것을 이용하여 복사 생성자와 복사 대입 연산자를 막아보려고한다. 다음 코드를 봐보자

#include<iostream>
#include<tchar.h>
using namespace std;

class UnCopy 
{
private:
	UnCopy(const UnCopy&);
	UnCopy& operator=(const UnCopy&);

protected:
	UnCopy() {}
	~UnCopy() {}

};

class HomeForSale : private UnCopy
{
private:


public:
	HomeForSale() {}
	~HomeForSale() {};

};

HomeForSale home1;			//기본 생성자는 정상적으로 사용가능하다

//이제 이것들은 자동으로 생성되지 않게 되었다.
HomeForSale home2(home1);	//참조할수 없으며 삭제된 함수라며 사용이 불가능하다
home2 = home1;				//물론 이것도 말이다

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading