본문 바로가기
Book & Lecture/Effective C++

Effective C++ 항목6 : 컴파일러가 만들어낸 함수가 필요 없다면 사용을 금지하자

by studio ODOC 2023. 1. 27.
반응형

Effective C++ 항목6

컴파일러가 만들어낸 함수가 필요 없다면 사용을 금지하자

 

  • 클래스의 복사를 금지하고 싶다면?
    • 복사 생성자 / 복사 대입 연산자를 private으로 선언하면? -> 90점 짜리 대응! friend함수가 이를 호출할 수 있기 때문.
    • 100점 짜리 대응은 private멤버로 선언하고 구현하지 않는 것!
      • 이제 누군가 복사 시도하면 링크 에러로 실패할 것
      • 복사 시도할 때 컴파일 에러로 나타나게 하고 싶다면?
        • private선언'만' 된 복사 생성자와 복사 대입 연산잦를 기본 클래스에 넣고 우리가 사용하려는 클래스를 기본 클래스의 파생 클래스로 둠 (클래스 간 역할 분리도 되므로 일석이조)
        • boost라이브러리의 noncopyable클래스를 상속 받도록 하면 위의 내용을 한 번에 해결해주므로 수고를 덜 수 있음
반응형