Инициализатор определяет начальное значение переменной. Можно инициализировать переменные в этих контекстах:
-
В определении переменной:
int i = 3; Point p1< 1, 2 >;
set_point(Point< 5, 6 >);
Point get_new_point(int x, int y) < return < x, y >; > Point get_new_point(int x, int y) < return Point< x, y >; >
Инициализаторы могут принимать эти формы:
-
Выражение (или разделенный запятыми список выражений) в скобках:
Point p1(1, 2);
string s = «hello»;
struct Point< int x; int y; >; class PointConsumer< public: void set_point(Point p)<>; void set_points(initializer_list my_list)<>; >; int main() < PointConsumer pc<>; pc.set_point(<>); pc.set_point(< 3, 4 >); pc.set_points(< < 3, 4 >, < 5, 6 >>); >
Типы инициализации
Существует несколько типов инициализации, которые могут встречаться на различных этапах выполнения программы.
Занятие 31 — Инициализация в структурах и классах | Основы
Различные виды инициализации не являются взаимоисключающими. Например, инициализация списка может активировать инициализацию значений, а в других случаях — агрегатную инициализацию.
Нулевая инициализация
Нулевая инициализация — задание для переменной нулевого значения, неявно преобразованного в тип:
- Числовые переменные инициализируются значением 0 (или 0,0; 0,0000000000 и т.п.).
- Переменные char инициализируются в ‘