使用base:base在body中从类模板派生的类

时间:2016-04-26 18:23:35

标签: c++

这可能是一个基本问题,但我以前没有看到过这个问题,而且我还没有找到一个可以参考它的参考文献:

以下代码中发生了什么:

using HandlerType = std::function<bool()>;

class SpecificAction : public Action<HandlerType>
{
public:
    using Action::Action;
};

具体来说,使用Action :: Action&#39;?的原因是什么? Action是一个类模板,为它定义了一堆方法,但这是SpecificAction的完整声明。

1 个答案:

答案 0 :(得分:2)

当您定义从Action派生的类SpecificAction时,Action中的所有内容都将添加到SpecificAction,但构造函数除外。此语法是一种告诉编译器您希望将Action中的构造函数用作SpecificAction的构造函数的方法 默认情况下,构造函数未添加到派生类的原因是派生类可能会添加一些不会被基本构造函数初始化的数据成员。使用这种语法,您可以告诉编译器它没问题,您知道自己在做什么。