[Effective C++] 항목 3: 낌새만 보이면 const를 들이대 보자!
·
책/Effective C++
1. constconst는 객체가 수정되지 않아야 한다는 의미적인 제약을 명확히 표현할 수 있습니다. 이 제약을 선언하면 컴파일러가 이를 강제하기 때문에 실수를 줄이고 더 안전한 코드를 작성할 수 있습니다. const를 사용할 수 있는 위치변수와 객체전역, 네임스페이스, 정적 변수에 적용 가능합니다.포인터포인터 자체, 포인터가 가리키는 값에 각각 const를 적용 가능합니다.함수함수의 매개변수, 반환값, 멤버 함수에 const를 사용할 수 있습니다. 2. const와 포인터char greeting[] = "Hello";// 1. 비상수 포인터, 비상수 데이터char *p = greeting;// 2. 비상수 포인터, 상수 데이터cosnt char *p = greeting;// 3. 상수 포인터, 비상수 ..
[Effective C++] 항목 2: #define을 쓰려거든 const, enum, inline을 떠올리자
·
책/Effective C++
#define의 문제점#define은 전처리 지시문으로, 컴파일러가 코드를 읽기 전에 텍스트 치환이 이루어집니다.#define ASPECT_RATIO 1.653컴파일러는 ASPECT_RATIO라는 이름을 알 수 없고, 단지 1.653만을 인식합니다. 그 결과 ASPECT_RATIO라는 이름은 컴파일러가 쓰는 기호 테이블에도 들어가지 않습니다.이로 인해 에러 메시지엔 1.653만 보여 코드 분석과 디버깅이 어려워집니다. 대안 1 : constconst double AspectRatio = 1.653;AspectRatio는 상수 타입의 데이터이므로 컴파일러의 눈에도 보이며 기호 테이블에도 들어갑니다. 상수로 교체하려는 경우 조심해야 할 두 가지 경우1. 상수 포인터(Constant Pointer)의 정의포인..
[Effective C++] 항목 1: C++를 언어들의 연합체로 바라보는 안목은 필수
·
책/Effective C++
https://www.yes24.com/Product/Goods/17525589 Effective C++ 이펙티브 C++ - 예스24Effective C++ 이펙티브 C++www.yes24.comEffective C++를 읽으면서 중요하다고 생각하는 부분들을 정리한 글입니다. C++는 다중패러다임 프로그래밍 언어(multiparadigm programming language)라고 불립니다. 절차적(procedural) 프로그래밍을 기본으로 하여 객체 지향(object-oriented), 함수식(functional), 일반화(generic) 프로그래밍을 포함하며 메타프로그래밍(metaprogramming) 개념까지 지원하고 있습니다. C++를 단일 언어로 바라보는 눈을 넓혀, 상관 관계가 있는 여러 언어들..