首页 > 解决方案 > :className() 在类名的构造函数中是什么意思?

问题描述

我在我正在处理的代码库中看到一些代码,如下所示:

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

我假设这是一个 C++11 功能,因为它在 VS2012 中中断,但它是什么意思?

标签: c++c++11

解决方案


这是 C++11 中的一个新特性。它被称为委托构造函数。

构造函数首先调用默认构造函数(被委托给的构造函数)。默认构造函数返回后,执行委托构造函数的主体。

有关更多信息,请参阅http://www.stroustrup.com/C++11FAQ.html#delegating-ctorhttps://en.cppreference.com/w/cpp/language/initializer_list#Delegating_constructor


推荐阅读