Что означает ":" в структуре C++?

Смотрел один код с гитхаба и наткнулся на вот такую структуру:

struct vec2
{
    float x, y;
    vec2(float value) : x(value), y(value) {}
    vec2(float _x, float _y) : x(_x), y(_y) {}
};

Изучаю C++ не так давно, поясните, пожалуйста, что значат 4 и 5 строчки.


Ответы (1 шт):

Автор решения: Bloody.cpp

: в C++ это что-то в роде сокращения кода. Есть исключения конечно. В методах/функциях : означает присваивание из параметров. Работает это так:

size_t globalvar = 0; // Переменная в которую сохраняем значение
void myfunc(size_t otherValue) : /*Тут вставляем имя переменной в которую сохраним значение*/globalvar(/*Суда пишем параметр*/otherValue) {}

Но не всегда это сокращение. Например : так же используется для наследования в классах/структурах

И ещё, эти присваивания можно писать через запятую

→ Ссылка