개발자의 길/Effective C++

[Effective C++] Chapter 5 구현

토아드 2020. 3. 7. 01:04
반응형

 항목 26: 변수 정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자

 쓸데없는 생성자와 소멸자 호출을 막기 위해, 변수 정의는 최대한 늦추도록 하자. 또한, for 문 안에서 변수를 정의해야할 경우, 생성자/소멸자 호출과 대입연산 중 어느것이 더 자원을 많이 먹을지 고려한 다음 사용하자

 

 항목 27: 캐스팅은 절약, 또 절약! 잊지 말자

 구형 스타일의 캐스트가 아닌 C++ 스타일의 캐스트를 선호하자, 발견하기도 쉽고 의도파악에 도움이 된다.

 가능한 캐스팅을 피하되, 어쩔수 없이 써야 된다면 함수 안에 숨길 수 있도록 하자. 그러면 최소한 사용자는 자신의 코드에는 캐스팅을 넣지 않을 수 있다.

 

 항목 28: 내부에서 사용하는 객체에 대한 핸들을 반환하는 코드는 되도록 피하자

 캡슐화 정도를 높이고, 상수멤버 함수가 상수성을 유지하도록 동작할 수 있도록 해야된다. 또한 무효참조 핸들이 생기는 현상을 최소화 할 수 있기 떄문이다.

 

 항목 29: 예외 안정성이 확보되는 그날 위해 싸우고 또 싸우자!

  실행 중 예외가 발생하더라도 자원을 누출시키지 않고, 자료구조를 더럽힌 채로 내버려 두지 않는 함수를 만들자.

 기본적인 보장, 강력한 보장, 예외 금지 보장을 함수가 제공하도록 하자.

 어떤 함수가 제공하는 예외 안전성 보장의 강도는 그 함수 내에서 호출하는 함수들이 제공하는 가장 약한 보장을 넘지 않는다

 

 항목 30 : 인라인 함수는 미주알 고주알 따져서 이해해 두자

   자주 호출되고 작은 함수에 대한 인라인처리는 쓸데없는 코드 부풀림 현상을 최소화 시키고, 프로그램의 속도를 높일 수 있도록 도와준다.

  

 항목 31: 파일 사이의 컴파일 의존성을 최대로 줄이자

  핸들 클래스와 인터페이스 클래스를 통해, 선언에 의존하도록 작업을 하자.

  라이브러리 헤더는 그 자체로 모든 것을 갖추어야 한다. 또한 선언부만 갖고 있는 형태여야 한다.

 

 

  

반응형