21xrx.com
2024-11-05 19:01:05 Tuesday
登录
文章检索 我的文章 写文章
如何在C++中实现父类调用子类方法
2023-07-02 04:51:21 深夜i     --     --
C++ 继承 多态 虚函数 父类调用子类方法

在C++中,子类是可以继承父类的方法和属性的,但有时候父类需要调用子类中的方法或属性。这时就需要用到虚函数和多态的概念。

首先,我们需要将父类中需要调用子类的方法声明为虚函数。这样,子类中对该函数的重写将成为运行时决定的(动态绑定),而不是编译时决定的(静态绑定)。在父类声明虚函数的方式如下:


class Parent {

public:

  virtual void foo()

    // 父类中的函数实现

  

};

然后,在子类中重写该虚函数。这里我们需要使用 `override` 关键字,表示该函数是重写父类中的虚函数。如果子类中没有实现这个虚函数,则编译器会提示错误。子类中重写虚函数的方式如下:


class Child : public Parent {

public:

  void foo() override

    // 子类中的函数实现

  

};

最后,我们可以通过指向父类的指针或引用来调用子类的重写函数。这里需要注意的是,父类指针或引用只能调用父类中的函数。如果我们想要调用子类中重写的函数,就需要强制类型转换。调用子类中重写函数的方式如下:


Parent* p = new Child();

p->foo(); // 调用的是子类中的函数

需要注意的是,如果父类函数中调用的子类函数不是虚函数,则调用的仍然是父类中的函数。因此,在父类中需要调用子类函数时,建议使用虚函数的方式。

  
  

评论区

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