Class 继承的模板类

Class 继承的模板类,class,templates,inheritance,Class,Templates,Inheritance,首先-我知道这真的是一个努伯问题-但是嘿-我们都是从成为努伯开始的,不是吗?。。。 因此,对于Q: 我想使用继承的模板类,但我很难处理这些东西。这是用Microsoft Visual Studio Professional 2012编写的代码: template <class T> class A { protected: int f(){return 0}; }; template <class T> class B : public A<T> {

首先-我知道这真的是一个努伯问题-但是嘿-我们都是从成为努伯开始的,不是吗?。。。 因此,对于Q: 我想使用继承的模板类,但我很难处理这些东西。这是用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->;
    }
};
模板
甲级
{
受保护的:
int f(){return 0};
};
模板
B类:公共A
{
受保护的:
int f2()
{
返回此->;
}
};
问题是,在自动完成选项中,我曾经看到所有B‘变量’,它们是沿A变量的实际B变量。但当我使用模板时,当我写下“this->”时,我只能看到B类变量。 (不用说,当我删除模板声明时,结果很好,“this->”将为我提供f()f2()选项)
有什么我做错了吗?

我想你的问题是这个问题的重复:

伯伯的第一个回答很好地概括了这一点

[…]模板类的模板父级在 首先检查模板的编译过程。[…]

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