簡體   English   中英

從非模板庫中派生模板類

[英]Deriving a template class from a non-template base

我試圖做Derived派生自Base:

class Base
{
public:
    Base() {};
};

template <class T>
class Derived : public Base
{
public:
    Derived::Derived()
    {

    }
};

這給了我以下錯誤:

錯誤C3254:'派生':類包含顯式覆蓋'{ctor}'但不派生自包含函數聲明的接口

注意:請參閱正在編譯的類模板實例化'Derived'的引用

錯誤C3244:'Derived :: Derived(void)':此方法由'Unknown>'引入,而不是'Base'引入

我對模板完全不熟悉,我錯過了哪些簡單的步驟? 這似乎是一個非常基本的事情。

您需要省略“Derived ::”前綴。 您只能使用它來引用已繼承的符號,或者將其注入到Derived類的命名空間中。 所以唯一有意義的前綴是“Base ::”。 它與模板無關。

class Base
{
public:
    Base() {};
};

template <class T>
class Derived : public Base
{
public:
    Derived() {}
};

查看有效的現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM