21xrx.com
2024-11-05 20:32:37 Tuesday
登录
文章检索 我的文章 写文章
C++模板类继承另一模板类代,子类如何调用父类成员函数?
2023-07-09 07:20:29 深夜i     --     --
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()`,编译器会尝试对未实例化的模板类进行成员函数查找,导致编译错误。

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复