[C++] 스터디 CPPALOM 12주차: Effective C++ Chap 1~2
파워 포인트 파일(.pptx)을 Markdown으로 변환하여 업로드하였음) # <br>CPPALOM # <br>12주차 – Effective C++ Chap 1~2 한수빈 # <br>항목1: C++를 언어들의 연합체로 바라보는 안목은 필수 * C++은 다중패러다임 프로그래밍 언어라고 불린다. * 다음 네 가지 하위 언어를 제공한다: * C * 객체 지향 개념의 C++: 클래스를 쓰는 C * 템플릿 C++: 일반화 프로그래밍 * STL: 템플릿 라이브러리 # <br>항목2: #define을 쓰려거든 const, enum, inline을 떠올리자 * 상수를 사용하기 위해서 #define을 사용하지 마라. 대신: * 주의점: 다음은 컴파일 오류를 일으킨다. * A::C는 선언만 되어있으며, 정의가 되어있지 않다. * 그러나 min()은 참조를 요구하기 때문에 오류가 난다. ```C++ const char* const authorName = “Scott Meyers”; const std::string authorName(“Scott Meyers”); ``` ```C++ #include <algorithm> class A { public: static const int C = 10; // DECLARATION }; // const int A::C; DEFINITION int main() { std::min(0, A::C); } ``` # <br>enum hack * const 객체에 대해 주소를 취하는 것을 방지할 수 있다. * 많은 코드에서 이 기법이 쓰이고 있으므로 이러한 방식에 대해 익혀 놓아야 한다. * 수빈의 첨언: * 현대 C++에서 단순히 상수를 이용하고 싶을 때에는 constexpr를 권장한다! ```C++ class GamePlayer { private: enum { NumTurns = 5};...