К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

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