我有一个模板基类。假设。
template<class KeyF>
class Base
{
private:
int member1;
char member2;
....
};
我从上面的类派生了另一个类。
template<class KeyF>
class Derived : public Base<KeyF>
{
public:
void func1() {
<accessing member1/member2>
}
....
};
以上代码无法在 gcc 中编译。说 member1 不是 Derived 的成员。但是它已经派生自一个基类,那么为什么它不能访问它的成员呢?
最佳答案
您需要在基本成员名称前加上 this->
前缀或 Base<KeyF>::
, 或添加 using
向类(class)声明以取消隐藏它们。它们的名称是从属名称,并且它们是隐藏的。
关于c++ - 无法在派生模板类中访问模板基类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12514673/