|
|
||
3.Инициализация структур |
||
Инициализация структур путем присваивания значений каждому члену по порядку — занятие довольно громоздкое (особенно, если этих членов много), поэтому в языке C++ есть более быстрый способ инициализации структур — с помощью списка инициализаторов. Он позволяет инициализировать некоторые или все члены структуры во время объявления переменной типа struct: struct Employee
{
short id;
int age;
double salary;
};
Employee john = { 5, 27, 45000.0 }; // john.id = 5, john.age = 27, john.salary = 45000.0
Employee james = { 6, 29}; // james.id = 6, james.age = 29, james.salary = 0.0 (инициализация по умолчанию)
В C++11 также можно использовать uniform-инициализацию: Employee john { 5, 27, 45000.0 }; // john.id = 5, john.age = 27, john.salary = 45000.0
Employee james { 6, 29 }; // james.id = 6, james.age = 29, james.salary = 0.0 (инициализация по умолчанию)
Если в списке инициализаторов не будет одного или нескольких элементов, то им присвоятся значения по умолчанию (обычно, 0). В примере, приведенном выше, члену james.salary присваивается значение по умолчанию 0.0, так как мы сами не предоставили никакого значения во время инициализации. В C++11 добавили возможность присваивать нестатическим (обычным) членам структуры значения по умолчанию. Например: #include <iostream>
struct Triangle
{
double length = 2.0;
double width = 2.0;
};
int main()
{
Triangle z; // длина = 2.0, ширина = 2.0
z.length = 3.0; // вы также можете присваивать членам структуры и другие значения
return 0;
}
|
||
|
||
3 |