본문 바로가기

프로그래밍/Effective C++

디폴트들 사용금지령(effective c++ 06)

서론

클래스에서 기본적으로 제공하는 기능들이 있다.(복사생성자, 대입연산자 등)

자동으로 이러한 기능들이 실행되는 것을 막기 위해서는 private로 선언하면 되겠지만, 

이는 friend키워드에 대해서는 여전히 무방비하다.

자동제공 되는 기능에 대응되는 메소드를 private로 선언한 후

구현하지 않은채로 두고, 해당 클래스를 상속받아 사용하는 방법이 있다.


예시

C++에서 class에 대해 기본적으로 제공하는 기능들은 사용자가 

제한하지 않는다면 컴파일러가 임의로 작동하고만다. 

이렇게 예외적인 상황없이 사용자가 의도대로 사용하려 하는 경우 해당 기능을 반드시 처리하여야 한다


728x90
반응형