Effective C++38 Effective C++ | 항목 02 #define을 쓰려거든 const, enum, inline을 떠올리자 항목 02 #define을 쓰려거든 const, enum, inline을 떠올리자 2.1 매크로 상수 대신 const 상수 #define ASPECT_RATIO 1.653 우리에겐 이 ASPECT_RATIO가 기호식 이름(symbolic name)으로 보이지만, 선행 처리자는 소스 코드가 컴파일러에게 넘어가기 전에 ASPECT_RATIO를 밀어버리고 숫자 상수로 바꾸어 버린다. 그 결과, ASPECT_RATIO라는 이름은 컴파일러가 쓰는 기호 테이블에 들어가지 않는다. 그래서 숫자 상수로 대체된 코드에서 컴파일 에러가 발생하게 되면 대체 1.653이 어디서 왔는지 찾느라 시간을 허비하게 된다. 마찬가지로 기호 테이블에 이름이 들어가지 않기 때문에 기호식 디버거(symbolic debugger)에서도 문제.. 2021. 8. 21. Effective C++ | 항목 01 C++를 언어들의 연합체로 바라보는 안목은 필수 항목 01 C++를 언어들의 연합체로 바라보는 안목은 필수 1.1 C++는 다중 패러다임 프로그래밍 언어 오늘날의 C++는 다중 패러다임 프로그래밍 언어(multiparadigm programming language)라고 불린다. 절차적 프로그래밍을 기본으로 하여 객체 지향, 함수식, 일반화 프로그래밍을 포함하며 메타 프로그래밍 개념까지 지원하고 있다. 이런 엄청난 표현력과 유연석 덕분에 C++는 소프트웨어 개발에 있어 대체할 만한 것이 없는 도구가 되었지만, 혹자에게 어느 정도 혼동을 줄 여지가 있는 것도 사실이다. 가장 쉬우면서 정확한 방법은 C++를 상관 관계가 있는 여러 언어들의 연합체(federation)로 보는 것이다. C++를 제대로 따라잡으려면 이 언어가 여러 개의 하위 언어(sublang.. 2021. 8. 20. 이전 1 2 3 4 다음