21xrx.com
2024-11-22 11:10:11 Friday
登录
文章检索 我的文章 写文章
如何在C++中调用父类同名函数?
2023-07-05 12:36:43 深夜i     --     --
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关键字,在子类中调用父类同名函数的实现。选择哪种方法取决于具体的需求和实现方式。无论使用哪种方法,都可以帮助我们在子类中扩展父类的实现,从而使我们的程序更加灵活和可扩展。

  
  

评论区

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