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

 

auto (C++)

auto (C++) In this article --> Deduces the type of a declared variable from its initialization expression. Note The C++ standard defines an original and a revised meaning for this keyword. Before Visual Studio 2010, the auto keyword declares a variable in

docs.microsoft.com

 

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

+ Recent posts