728x90
auto 자료형은 선언된 변수의 초기화 식으로부터 타입을 추론하여 설정합니다.
auto 자료형은 4가지 장점이 있습니다.
- 견실성 : 선언한 변수의 타입, 함수의 반환형이 바뀌어도 문제없음
- 성능 : 형 변환이 없음을 보장할 수 있음
- 유용성 : 변수 타입 이름의 스펠링 오타나 어려움에 대해 걱정하지 않아도 됨
- 효율성 : 코딩을 더 효율적으로 할 수 있게 도와줌
하지만 auto를 사용하길 원하지 않는 경우도 있습니다.
- 특정 형식을 사용하기를 원하는 경우
- 템플릿 식을 사용하는 경우
auto 자료형에 대한 예제입니다.
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
int a = 5;
auto b = 6;
auto c = 11.1;
auto d = 'c';
auto e = "str";
cout << "a의 type : " << typeid(a).name() << endl;
cout << "b의 type : " << typeid(b).name() << endl;
cout << "c의 type : " << typeid(c).name() << endl;
cout << "d의 type : " << typeid(d).name() << endl;
cout << "e의 type : " << typeid(e).name() << endl;
}
/*
실행결과
a의 type : int
b의 type : int
c의 type : double
d의 type : char
e의 type : char const *
*/
auto와 함께 const, volatile, 포인터, 참조, r-value 참조를 사용할 수 있습니다. 컴파일러가 값의 형식을 추론한 정보를 사용하여 계산합니다.
auto는 등호를 이용한 초기화, 함수 스타일의 직접 초기화, new 연산자 이용, 범위 기반 for문의 매개변수로 초기화 될 수 있습니다.
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
auto a = 5;
auto b(7.7);
auto* c = new auto('c');
cout << "a의 type : " << typeid(a).name() << endl;
cout << "b의 type : " << typeid(b).name() << endl;
cout << "c의 type : " << typeid(c).name() << endl;
int arr[] = { 1,2,3,4 };
for (auto i : arr)
{
cout << i;
}
}
/*
실행결과
a의 type : int
b의 type : double
c의 type : char *
1234
*/
참고자료 : https://docs.microsoft.com/en-us/cpp/cpp/auto-cpp?view=vs-2019
728x90
'Programming > C++' 카테고리의 다른 글
C++ 디폴트 매개변수 (0) | 2020.02.06 |
---|---|
C++ reference value(참조형 변수) (0) | 2020.02.04 |
C++ new, delete (0) | 2020.01.20 |
C++11 decltype (0) | 2020.01.20 |
C++ const, mutable (0) | 2020.01.10 |