본문 바로가기
Script/Modern C++

[Modern C++] Chapter 06. delete

by song.ift 2023. 5. 22.

GitHub : https://github.com/developeSHG/Modern-C/blob/a30dc0a22e2afcdb8ae81e9ca9e3f46fb125ab66/Modern%20C%2B%2B/Modern%20C%2B%2B/delete.cpp

 

GitHub - developeSHG/Modern-C: Modern C++

Modern C++. Contribute to developeSHG/Modern-C development by creating an account on GitHub.

github.com

 

 


 

 

class Knight
{

private:
	// 정의되지 않은 비공개(private) 함수
	void operator=(const Knight& k);
	// 하지만 외부에서만 막았을 뿐, private로 선언했기때문에 내부에선 복사를 허용한다.
    // 또한 friend class 를 통해서 접근할 수도 있고, 진짜 의도는 구현부없이 '삭제'를 하고싶다.
    // 안좋은 방법.
    
public:
	void operator=(const Knight& k) = delete;

private:
	int _hp = 100;
}

int main()
{
	Knight k1;
    Knight k2;
    
    // 복사 연산자 
    k1 = k2; // 불가능
    
    return 0;
}

댓글