SW/C++

C++ : auto : 포인트 참조 및 받기 : 사용법, 주의점

얇은생각 2020. 4. 3. 07:30
반응형

modern C++

 

auto 키워드

자료형을 추론합니다. JavaScript 등의 언어에 있는 동적인 타입과는 다릅니다. 실제 자료형은 컴파일하는 동안 결정됩니다. 따라서, 반드시 auto 변수를 초기화해야 됩니다. 일반적인 자바스크립트와 파이썬과 활용하는 방식은 비슷하지만, 자료형이 바뀌지는 않으므로 유의해야 합니다.

 

 

 

auto로 포인터와 참조 받기

auto를 사용하며 포인터와 참조를 받을 수 있습니다.

포인터를 받을 떄 : auto / auto*
참조를 받을 떄 : auto&

 

 

 

Cat* myCat = new Cat("CoCo", 2);
auto myCatPtr = myCat;

 

myCat과 myCatPtr은 동일한 포인터의 값을 갖습니다. 컴파일러가 어느 형인지 알아낼 수 있기 때문입니다. 다만, 가독성이 떨어질 수 있습니다 .따라서 포인터 형을 받을 떄는 auto* 을 활용하는게 좋다고 합니다.

 

 

 

Cat myCat("Coco", 2);
Cat& myCatRef = myCat;
auto anotherMyCatRef = myCatRef;

 

auto로 참조도 받을 수 있다면 받는게 참조인지 아닌지 컴파일러가 구분할 수 없습니다. 따라서, 다른 참조 복사를 하기 위해서는 auto&를 확실하게 선언해주어야만 합니다. 

반응형