21xrx.com
2025-06-26 08:42:26 Thursday
登录
文章检索 我的文章 写文章
如何在C++中调用父类同名函数?
2023-07-05 12:36:43 深夜i     109     0
C++ 调用 父类 同名函数

在C++中,当子类继承了父类的情况下,如果子类中定义了一个与父类同名的函数,那么父类中的该函数会被子类的函数所覆盖。在某些情况下,我们需要在子类中调用父类同名函数的实现。本文介绍了几种方法来解决这个问题。

方法一:使用作用域解析运算符

C++提供了作用域解析运算符(::),可以在子类中显式地指明要调用父类中的同名函数。使用方法是在函数名前加上父类的类名,如下所示:

class Parent {
public:
  void same_name_function()
    std::cout << "Parent's implementation" << std::endl;
  
};
class Child : public Parent {
public:
  void same_name_function() {
    // call parent's implementation
    Parent::same_name_function();
    std::cout << "Child's implementation" << std::endl;
  }
};

通过使用Parent::same_name_function(),我们可以调用父类中的同名函数,并在子类中执行特定的逻辑。

方法二:使用using关键字

C++还提供了using关键字,可以使父类中的同名函数可以在子类中直接使用。使用方法是在子类中添加using语句,如下所示:

class Parent {
public:
  void same_name_function()
    std::cout << "Parent's implementation" << std::endl;
  
};
class Child : public Parent {
public:
  using Parent::same_name_function; // inherit parent's function
  void same_name_function() {
    Parent::same_name_function(); // call parent's implementation
    std::cout << "Child's implementation" << std::endl;
  }
};

通过使用using Parent::same_name_function,我们可以在子类中继承父类中的同名函数。然后,通过调用Parent::same_name_function(),我们可以执行父类中的同名函数的实现。接着,在子类中执行特定的逻辑。

综上所述,我们可以使用作用域解析运算符或using关键字,在子类中调用父类同名函数的实现。选择哪种方法取决于具体的需求和实现方式。无论使用哪种方法,都可以帮助我们在子类中扩展父类的实现,从而使我们的程序更加灵活和可扩展。

  
  

评论区