c++ - 无法在派生模板类中访问模板基类的成员

标签 c++ class templates gcc compiler-errors

我有一个模板基类。假设。

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/

相关文章:

java - UML关系类型: Variables & Parameters & Cloning

html - float 右 div 间歇性地推出对齐 - angularjs 模板问题?

c++ - 带有引用参数的模板结构构造器

c++ - 参数化继承的元类

c++ - qt 在 Windows 线程中发出信号

c++ - 带有模板类模板参数的模板类的变量设置为带有变量的派生模板的基本模板

c++ - 在贪吃蛇游戏中使用 SDL_FillRect

java - 需要使用 TestNG 在 java 类中循环

python - python中的基本面向对象实现

c++ - 源和错误运行时组件之间的依赖关系