21xrx.com
2025-06-24 18:57:05 Tuesday
登录
文章检索 我的文章 写文章
C++模板类继承另一模板类代,子类如何调用父类成员函数?
2023-07-09 07:20:29 深夜i     140     0
C++ 模板类 继承 子类 调用成员函数

在C++中,模板类继承另一模板类时,子类需要调用父类成员函数的方法与普通继承一样。

不同之处在于,模板类在编译期间才会被实例化,因此使用父类成员函数时需要进行模板实例化。

假设子类继承的父类为:

template <typename T>
class Parent {
public:
  void foo() {}
};

子类继承方式如下:

template <typename T>
class Child : public Parent<T> {
public:
  void bar() {
    // 调用父类的成员函数
    Parent<T>::foo();
  }
};

在子类中使用 `Parent ::foo()` 调用父类的 `foo()` 成员函数。

需要注意的是,在模板类中使用父类成员函数时,需要显式地指定模板参数类型(`Parent ::foo()`)。

如果在子类中直接调用 `foo()`,编译器会尝试对未实例化的模板类进行成员函数查找,导致编译错误。

继承模板类时,调用父类成员函数的方法与普通继承一样,只需要注意进行模板实例化即可。

  
  

评论区