继承的模板类

时间:2013-05-21 16:15:19

标签: class templates inheritance

首先 - 我知道这真是一个不容错过的问题 - 但是嘿 - 我们都是以新手开始的,不是吗?... 那么,问: 我想使用继承的模板类,而且我很难处理这些东西。这是用Microsoft Visual Studio Professional 2012编写的代码:

template <class T>
class A
{
protected:
    int f(){return 0};
};

template <class T>
class B : public A<T>
{
protected:
    int f2()
    {
        return this->;
    }
};

事实上,在自动完成选项中,我曾经看到所有B变量&#39;,它们是沿着A变量的实际B变量 。但是当我使用模板时 - 我只能看到B类变量,当写下&#34; this-&gt;&#34;时。 (不用说 - 当我删除模板声明时 - 它运行得很好,而且&#34; this-&gt;&#34;会给我f() f2()选项) 我有什么不对的吗?

1 个答案:

答案 0 :(得分:0)

我认为您的问题与此问题重复:

templates: parent class member variables not visible in inherited class

UncleBens的第一个答案总结得很好。

  

[...]模板类的模板父级在实例化期间未实例化   首先检查模板的编译通道。[...]

他还提供了进一步阅读的进一步信息和良好的链接。