Что означает: className() означает в конструкторе для классаName?

Я вижу некоторый код в кодовой базе, над которой я работаю, выглядит так:

 ZfooName::ZfooName(int magoo)
    : ZfooName()
 {
    fGoo = magoo;
 }

Я предполагаю, что это функция С++ 11, поскольку она разбивается на VS2012, но что это значит?

Ответы

Ответ 1

Это новая функция в С++ 11. Он назывался конструктором делегирования.

Конструктор сначала вызывает конструктор по умолчанию (конструктор, которому делегируется). После возврата конструктора по умолчанию выполняется тело конструктора делегирования.

Дополнительную информацию см. на странице http://www.stroustrup.com/C++11FAQ.html#delegating-ctor и https://en.cppreference.com/w/cpp/language/initializer_list#Delegating_constructor.