C++模板类继承:在派生类构造函数中调用基类构造函数

问题描述 投票:0回答:1
template <class T>
class C1
{
public:
    int n;
    C1(int a)
    {
        n=a;
    }
};

template <class T>
class C2: public C1<T>
{
public:
    C2(int a): C1(a) {};

};

每当我运行它时,我都会收到错误:

在构造函数 C2::C2(int)':

错误:类“C2”没有名为“C1”的字段

如果有人可以向我解释我做错了什么,我将非常感激。

c++ class templates inheritance
1个回答
7
投票

您应该将模板参数添加到基类

template <class T>
class C2: public C1<T>
{
    C2(int a): C1<T>(a) {};

};
© www.soinside.com 2019 - 2024. All rights reserved.