캐스팅
이펙티브 C++(191p ~ 200p)
이펙티브 C++ https://www.yes24.com/Product/Goods/17525589 페이지 191p ~ 200p 이펙티브 C++(191p ~ 200p) 요약 항목 27: 캐스팅은 절약, 또 절약! 잊지 말자 캐스팅이 들어가면, 보기엔 맞는 것 같지만 실제로는 틀린 코드를 쓰고도 모르는 경우가 많아진다. // 기본 클래스 class Window { public: virtual void onResize() {} } // 파생 클래스 class SpecialWindow: public Window { // 파생 클래스의 onResize에서 *this를 Window로 캐스팅하고, 그것에 대해 onResize 호출 // 동작은 안 됨 virtual void onResize() { static_cast(..
이펙티브 C++(183p ~ 190p)
이펙티브 C++ https://www.yes24.com/Product/Goods/17525589 페이지 (183p ~ 190p) 이펙티브 C++(183p ~ 190p) 요약 5. 구현 항목 26: 변수 정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자 생성자 혹은 소멸자를 끌고 다니는 타입으로 변수를 정의하면 반드시 물게 되는 비용이 두 개 있다. 프로그램 제어 흐름이 변수의 정의에 닿을 때 생성자가 호출 그 변수가 유효범위를 벗어날 때 소멸자가 호출 이 경우에는 변수가 정의됐으나 사용되지 않은 경우에도 비용이 부과된다. 다음 함수는 주어진 비밀번호가 충분히 길 경우에 해당 비밀번호를 암호화하여 반환하는 함수이다. 비밀번호가 너무 짧으면 logic_error 타입의 예외를 던진다.(표준 C++에 정의되..