코딩하는 두식이

Effective C++ 항목 3 : 낌새만 보이면 const를 들이대 보자! 본문

공부/C++

Effective C++ 항목 3 : 낌새만 보이면 const를 들이대 보자!

털빙이 2021. 5. 10. 17:21

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를 변경