Что значит "запись" между именем конструктора и его телом в c++?

Что значит "запись" между именем конструктора и его телом

Class a{
public:
int b,c;
а() :b(0)c(0) {тело}
}

Та и в принципе,до имя Функции пишется ее определение тип,и принадлежность к полям, В теле пишется то что она делает,а что пишется между? Для чего это пространство?


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

Автор решения: ТарасПрогер

Конструктор - функция, которая вызывается автоматически при создании объекта.

a(int value): b(value), c(0) { }

Это список инициализации. Эта конструкция для создания членов с заданным значением. Это можно было бы сделать в самом, непосредственно, теле, но так эффективней, потому что вызывается только конструктор, и не вызывается оператор присваивания Поэтому константные и ссылочные члены можно инициализировать в списке инициализации, но никак в теле конструктора Заметьте, что порядок инициализации переменных происходит в том порядке, в каком они объявлены в классе

→ Ссылка