본문 바로가기

Effective C++3

[Effective C++] 3. 낌새만 보이면 const를 들이대 보자! 항목 3. 낌새만 보이면 const를 들이대 보자! const - const 키워드가 붙은 객체는 외부 변경을 불가능하게 한다. const 는 사용범위가 넓다. char greeting[] = "Hello"; char *p = greeting;// 비상수 포인터, 비상수 데이터 const char *p = greeting;// 비상수 포인터, 상수 데이터 char * const p = greeting;// 상수 포인터, 비상수 데이터 const char * const p = greeting;// 상수 포인터, 상수 데이터 const 를 타입 왼쪽에 붙이는 사람들도 있고, * 앞에 붙이는 사람들도 있다. 의미차이는 없습니다. 따라서 아래 함수들이 받아들이는 타입은 같습니다. void f1(const wid.. 2021. 4. 26.
[Effective C++] 2. #define을 쓰려거든 const, enum, inline 을 떠올리자 항목 2. #define을 쓰려거든 const, enum, inline 을 떠올리자 "가급적 선행 처리자보다 컴파일러를 더 가까이 하자" const #define ASPECT_RATIO 1.653 위 코드는 컴파일러에게 넘어가기 전에 선행 처리자(Preprocessor)가 숫자 상수로 대체시킵니다. 따라서 컴파일러는 ASPECT_RATIO 를 기호식 이름(Symbolic name)이 아닌 숫자 상수로 인식합니다. (ASPECT_RATIO 는 기호 테이블에 들어가지 않습니다.) ※ 컴파일 방식 프로그래머가 작성한 소스파일은 선행처리기를 거치고, 컴파일되어 오브젝트 파일(.o)이 생성되고, 링커에 의해 실행파일이 됩니다. 문제 만약 컴파일 중 에러가 나타난다면 에러메세지에 ASPECT_RATIO 가 아닌 1.. 2021. 4. 23.
[Effective C++] 1. C++ 를 언어들의 연합체로 바라보는 안목은 필수 c++ 는 강력합니다. C++ 에서 뿜어나오는 힘을 제대로 활용하기 위해선 행동방식과 사고방식을 C++ 스타일로 만들 필요가 있습니다. 항목 1: C++를 언어들의 연합체로 바라보는 안목은 필수 초창기 c++은 단순히 C 언어에 객체 지향 기능 몇 가지가 결합된 형태였습니다. (C with Classes) 시간이 흐르면서 발전한 오늘 날의 C++는 다중페러다임 프로그래밍 언어(Multiparadigm Programming Language)라고 불립니다. 절차적(Procedural) 프로그래밍을 기본으로 객체 지향(Object-Oriented), 함수식(Functional), 일반화(Generic) 프로그래밍을 포함한 메타프로그래밍(Metaprogramming) 개념까지 지원하고 있습니다. C++ 를 이해.. 2021. 4. 22.