Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Automatic Type Deduction | Other Data Types and Concepts
C++ Data Types

book
Automatic Type Deduction

Although C++ is a statically typed language, you can use auto to let the compiler deduce the type of a variable during initialization. This feature was introduced in C++11 and is not available in older versions.

main.cpp

main.cpp

copy
#include <iostream>

int main()
{
auto num = 9;
auto str = "I am string";
std::cout << num << std::endl;
std::cout << str << std::endl;
}
12345678910
#include <iostream> int main() { auto num = 9; auto str = "I am string"; std::cout << num << std::endl; std::cout << str << std::endl; }

While this can save time and make the code more concise, it can also obscure the intended type, making errors harder to spot.

main.cpp

main.cpp

copy
#include <iostream>

int main()
{
auto num1 = 9;
auto num2 = 12;
auto num3 = 15000;
auto calculations = num1 / num2 * num3;
std::cout << calculations;
}
1234567891011
#include <iostream> int main() { auto num1 = 9; auto num2 = 12; auto num3 = 15000; auto calculations = num1 / num2 * num3; std::cout << calculations; }

Specifying types would help us understand code better and find what's wrong:

main.cpp

main.cpp

copy
#include <iostream>

int main()
{
float num1 = 9;
float num2 = 12;
float num3 = 15000;
float calculations = num1 / num2 * num3;
std::cout << calculations;
}
1234567891011
#include <iostream> int main() { float num1 = 9; float num2 = 12; float num3 = 15000; float calculations = num1 / num2 * num3; std::cout << calculations; }

Note

Any of num1, num2 or num3 should be float to output the correct result.

Nevertheless, auto is widely used in range-based for loops since it is a versatile method of iterating over arrays and other containers. Just use the following syntax for iterating over arr:

main.cpp

main.cpp

auto.h

auto.h

copy
#include <iostream>

int main()
{
int num_arr[5] = {1, 5, 10, 15, 20};
for (auto num : num_arr)
std::cout << num << " ";
}
123456789
#include <iostream> int main() { int num_arr[5] = {1, 5, 10, 15, 20}; for (auto num : num_arr) std::cout << num << " "; }

It also can be used when the type is long to type but is clear from the context and can't lead to incorrect results.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt