본문 바로가기

C++

[C++] auto

auto는 C++11에서 생긴 편리한 문법인데,

변수 선언시에 따로 데이터 타입 설정 없이 auto라고만 하면 초기화 하는 값에 따라 알아서 타입을 맞춰준다.

auto a1 = 3; //int
auto a2 = 2.3f; //float
auto a3 = 2.3; // double;
auto a4 = Knight(); //Knight;
auto a5 = "ASDF"; //const char*

 

auto에 *을 붙일 시 초기화 값이 포인터일 경우에만 작동한다.

 

auto* p1 = "ABCD"; //const char*
auto* i1 = 3; // (x)

 

주의해야 할점은 auto는 const, &를 무시한다는 것이다.

 

int& ref = a;
const int cst = a;

auto b1 = ref;//int
auto b2 = cst //int

 

그래서 참조값을 auto로 선언할 때는 auto& 를 써야 사용할 수 있다.

 

auto를 남용하는 것은 오히려 데이터 타입을 알아보기 힘들기 때문에 좋지 않고,

타입을 작성하기 너무 길어지는 경우에 auto를 사용하는 것이 좋다.