코딩하는 두식이
Effective C++ 항목 3 : 낌새만 보이면 const를 들이대 보자! 본문
1. const pointer, pointer const
char greeting[] = "Hello";
char *p = greeting; // 비상수 포인터, 비상수 데이터
const char *p = greeting; // 비상수 포인터, 상수 데이터 (포인터가 가리키는 대상이 상수)
char * const p = greeting; // 상수 포인터, 비상수 데이터 (포인터 자체가 상수)
const char * const p = greeting; // 상수 포인터, 상수 데이터
2. 반복자 포인터
const std::vector<int>::iterator iter = vec.begin();
*iter = 10; // OK, iter가 가리키는 대상을 변경합니다.
++iter; // 에러! iter는 상수입니다.
std::vector<int>::const_iterator cIter = vec.begin();
*cIter = 10; // 에러! *cIter가 상수이기 때문에 안 됩니다.
++cIter; // 이건 문제 없습니다. cIter를 변경
'공부 > C++' 카테고리의 다른 글
Effective C++ 항목 4 : 객체를 사용하기 전에 반드시 그 객체를 초기화하자 (0) | 2022.05.07 |
---|---|
Effective C++ 항목 9 : 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (0) | 2021.05.10 |
Effective C++ 항목 7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자. (0) | 2021.05.10 |
Effective C++ 항목 2 : #define을 쓰려거든 const, enum, inline을 떠올리자. (0) | 2021.05.10 |
Effective C++ 항목 1 : C++ 를 언어들의 연합체로 바라보는 안목은 필수 (0) | 2021.05.10 |