auto는 형식 연역 (type deduction)으로
자료형을 추론해 주는 기능이다
ex.
class Knight
{
public:
int mhp;
};
int main()
{
auto a = 3;// int
auto b = 3.14f;// float
auto c = 3.14;// double
auto d = Knight();// Knight
auto e = "Hello";// const char*
}
주의할 점!
기본적으로 auto는 const, & 무시가 된다
따라서 아래와 같은 경우를 주의해야 한다
vector<int>v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
for (vector<int>::size_type i = 0; i < v.size(); i++)
{
auto data = v[i];
data = 100;
}// auto에 int가 들어가기 때문에 복사된 data가 100이 되며 실제 vector v는 수정이 되지 않는다
for (vector<int>::size_type i = 0; i < v.size(); i++)
{
auto& data = v[i];
data = 100;
}// 이처럼 참조형을 붙여줘야 vector v의 데이터들은 다 100으로 수정된다
'C++ > [루키스] Modern C++' 카테고리의 다른 글
[MC++] delete (0) | 2023.07.01 |
---|---|
[MC++] enum class (0) | 2023.06.30 |
[MC++] using (0) | 2023.06.29 |
[MC++] nullptr (0) | 2023.06.29 |
[MC++] 중괄호 초기화 {} (0) | 2023.06.29 |