Что значит "запись" между именем конструктора и его телом в c++?
Что значит "запись" между именем конструктора и его телом
Class a{
public:
int b,c;
а() :b(0)c(0) {тело}
}
Та и в принципе,до имя Функции пишется ее определение тип,и принадлежность к полям, В теле пишется то что она делает,а что пишется между? Для чего это пространство?
Ответы (1 шт):
Конструктор - функция, которая вызывается автоматически при создании объекта.
a(int value): b(value), c(0) { }
Это список инициализации. Эта конструкция для создания членов с заданным значением. Это можно было бы сделать в самом, непосредственно, теле, но так эффективней, потому что вызывается только конструктор, и не вызывается оператор присваивания Поэтому константные и ссылочные члены можно инициализировать в списке инициализации, но никак в теле конструктора Заметьте, что порядок инициализации переменных происходит в том порядке, в каком они объявлены в классе