Item6_컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자
챕터 핵심 내용
- 컴파일러에서 자동으로 제공하는 기능을 허용하지 않으려면, 대응되는 멤버 함수를 private으로 선언한 후에 구현을 하지 말자.
- 컴파일러에서 자동으로 제공하는 기능을 허용하지 않으려면, 대응되는 멤버 함수를 private으로 선언한 후에 구현을 하지 말자.
- 컴파일러에서 자동으로 제공하는 기능을 허용하지 않으려면, 대응되는 멤버 함수를 private으로 선언한 후에 구현을 하지 말자
- 사본을 만드는 행위가 필요하지 않다면 복사 생성자와 복사 대입 연산자를 private 접근으로 만들어 버리자.
- 프렌드 함수의 접근도 막으려면 선언만 하고 구현을 하지 말자.
- 링크 시점 오류를 컴파일 시점 오류로 옮기고 싶다면 인터페이스 형식처럼 만들어 private 상속을 이용하는 방식으로 구현할 수 있다.
- 사본을 만드는 행위가 필요하지 않다면 복사 생성자와 복사 대입 연산자를 private 접근으로 만들어 버리자.
- 프렌드 함수의 접근도 막으려면 선언만 하고 구현을 하지 말자.
- 링크 시점 오류를 컴파일 시점 오류로 옮기고 싶다면 인터페이스 형식처럼 만들어 private 상속을 이용하는 방식으로 구현할 수 있다.
후기(postscript)
C++11부터는 클래스 메소드에 delete
키워드를 넣어 명시적으로 삭제임을 표기할 수 있다. 예를 들면 A(const A&) = delete;
식이다.
C++11부터는 클래스 메소드에 delete
키워드를 넣어 명시적으로 삭제임을 표기할 수 있다. 예를 들면 A(const A&) = delete;
식이다.