21xrx.com
2024-11-05 18:39:38 Tuesday
登录
文章检索 我的文章 写文章
C++子类如何调用父类虚函数?
2023-06-25 04:01:19 深夜i     --     --
C++ 子类 父类 虚函数 调用

在C++中,继承是一个重要的概念,它允许子类继承父类的属性和方法。当父类中有虚函数时,子类可以通过调用该虚函数实现重写。但有时候,子类如果需要调用父类的虚函数,该如何实现呢?

首先,需要明确的是,子类可以直接调用父类的普通函数。但对于虚函数,需要借助于父类指针或引用来实现。

假设有如下的父类和子类定义:


class Parent {

public:

 virtual void doSomething() {

  std::cout << "Parent doSomething()" << std::endl;

 }

};

class Child : public Parent {

public:

 void doSomething() override {

  std::cout << "Child doSomething()" << std::endl;

 }

};

在子类中,如果需要调用父类的虚函数,可以使用以下两种方式。

第一种方式是使用基类指针调用父类虚函数:


Child child;

Parent* parentPtr = &child;

parentPtr->Parent::doSomething(); //调用父类虚函数

在这种情况下,基类指针可以指向子类对象,然后通过指针调用父类的虚函数,即可实现调用父类的虚函数。

第二种方式是使用基类引用调用父类虚函数:


Child child;

Parent& parentRef = child;

parentRef.Parent::doSomething(); //调用父类虚函数

和使用基类指针一样,使用基类引用也可以指向子类对象,然后通过引用调用父类的虚函数,即可实现调用父类的虚函数。

总之,当需要在子类中调用父类的虚函数时,应该借助于父类指针或引用来实现。了解这种调用方式对于理解C++继承的特点和虚函数机制非常重要。

  
  

评论区

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