Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Uniform Initialization | Type Inference and Initialization
C++ Modern Features

bookUniform Initialization

Uniform initialization, introduced in C++11, provides a consistent brace {} syntax for initializing variables, arrays, structs, and objects.

main.cpp

main.cpp

copy
123
int a {5}; // Initialize 'int' double b {3.14}; // Initialize 'double' char c {'A'}; // Initialize 'char'
Note
Note

Using braces {} avoids accidental narrowing conversions. For example, int a{3.5}; would cause a compile-time error.

Uniform initialization works consistently for both built-in and standard containers.

main.cpp

main.cpp

copy
12345678910
#include <array> #include <iostream> int main() { int numbers[] {1, 2, 3, 4}; // Built-in array std::array<int, 3> arr {10, 20, 30}; // `std::array` std::cout << numbers[3] << ", " << arr[2] << std::endl; }

You can initialize structs and classes directly using braces.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> struct Point { int x; int y; }; int main() { Point p1 {7, 9}; // Uniform initialization for `struct` std::cout << "(" << p1.x << ", " << p1.y << ")" << std::endl; }

Uniform initialization gives a single, safe way to initialize any object using braces { }, reducing ambiguity and preventing narrowing errors.

question mark

What is one benefit of using uniform initialization {}?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 14.29

bookUniform Initialization

Deslize para mostrar o menu

Uniform initialization, introduced in C++11, provides a consistent brace {} syntax for initializing variables, arrays, structs, and objects.

main.cpp

main.cpp

copy
123
int a {5}; // Initialize 'int' double b {3.14}; // Initialize 'double' char c {'A'}; // Initialize 'char'
Note
Note

Using braces {} avoids accidental narrowing conversions. For example, int a{3.5}; would cause a compile-time error.

Uniform initialization works consistently for both built-in and standard containers.

main.cpp

main.cpp

copy
12345678910
#include <array> #include <iostream> int main() { int numbers[] {1, 2, 3, 4}; // Built-in array std::array<int, 3> arr {10, 20, 30}; // `std::array` std::cout << numbers[3] << ", " << arr[2] << std::endl; }

You can initialize structs and classes directly using braces.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> struct Point { int x; int y; }; int main() { Point p1 {7, 9}; // Uniform initialization for `struct` std::cout << "(" << p1.x << ", " << p1.y << ")" << std::endl; }

Uniform initialization gives a single, safe way to initialize any object using braces { }, reducing ambiguity and preventing narrowing errors.

question mark

What is one benefit of using uniform initialization {}?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 2
some-alt