티스토리 뷰

c++98에서는 auto 키워드는 자동지역변수를 명시적으로 지정하는 역활을 했다.


ex ) auto int x = 10;  // 지역변수 x 를 명시적으로 의미



c++11에서는 변수 타입을 컴파일러가 유추하여 자동으로 지정해주는 편리한 키워드로 바뀌었다. 


이에따라 c++98에서 자동지역변수의 의미는 사라지게 되었다.


ex)


auto x = 10; // x 는 int 형

auto y = 3.3; // y 는 float 형

auto c = "hahaha" // c는 char*형



float add(float a, float b)

{

    return a + b;

}


auto z = add(3.3, 4.4); // z는 float


컴파일러는 함수 add의 반환 타입에 따라 자동으로 변수 z의 type을 float으로 결정한다.



stl을 사용할 때


for(std::vector<int>::iterPos = v.begin(); iterPos != v.end(); iterPos++)


와 같은 소스코드를


for(auto iterPos = v.begin(); iterPos != v.end(); iterPos++) 


와 같이 줄여 쓸 수 있다.  



auto &&b = add(3.3, 4.4) // 우측값 참조

auto &c = b; // 좌측값 참조

auto *p = &c; // 포인터 


등도 유효하다




'프로그래밍(programming) > C++' 카테고리의 다른 글

C++ Primer 5판 후기아닌 후기  (5) 2016.05.09
c++ 책 추천(해외/번역서 기준)  (12) 2016.03.28
c++ 기초플러스  (0) 2016.03.04
가상 파괴자(virtual destructor)  (2) 2016.02.21
다중 상속  (0) 2013.10.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함