반응형
Effective C++ 항목6
컴파일러가 만들어낸 함수가 필요 없다면 사용을 금지하자
- 클래스의 복사를 금지하고 싶다면?
- 복사 생성자 / 복사 대입 연산자를 private으로 선언하면? -> 90점 짜리 대응! friend함수가 이를 호출할 수 있기 때문.
- 100점 짜리 대응은 private멤버로 선언하고 구현하지 않는 것!
- 이제 누군가 복사 시도하면 링크 에러로 실패할 것
- 복사 시도할 때 컴파일 에러로 나타나게 하고 싶다면?
- private선언'만' 된 복사 생성자와 복사 대입 연산잦를 기본 클래스에 넣고 우리가 사용하려는 클래스를 기본 클래스의 파생 클래스로 둠 (클래스 간 역할 분리도 되므로 일석이조)
- boost라이브러리의 noncopyable클래스를 상속 받도록 하면 위의 내용을 한 번에 해결해주므로 수고를 덜 수 있음
반응형
'Book & Lecture > Effective C++' 카테고리의 다른 글
Effective C++ 항목8 : 예외가 소멸자를 떠나지 못하도록 붙들어 놓자 (0) | 2023.02.06 |
---|---|
Effective C++ 항목7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자. (0) | 2023.02.05 |
Effective C++ 항목5 : 컴파일러가 기본으로 만드는 함수들에 촉각을 세우자 (0) | 2023.01.26 |
Effective C++ 항목4 : 객체를 사용하기 전에 반드시 그 객체를 초기화하자 (0) | 2023.01.25 |
Effective C++ 항목1~3 정리 요약 (0) | 2023.01.24 |