21xrx.com
2024-12-22 22:48:30 Sunday
登录
文章检索 我的文章 写文章
如何实现C++重写函数
2023-07-02 04:39:48 深夜i     --     --
C++ 重写函数 覆盖函数 派生类 虚函数

在C++中,子类可以重写(override)基类的函数。这意味着在子类中可以定义与基类相同名称的函数,并且当从子类对象调用函数时,将执行子类函数而不是基类函数。以下是如何实现C++重写函数的步骤:

1.定义一个基类和一个子类。基类应该包含需要被重写的函数。在子类中,使用相同的函数签名(名称和参数类型)定义一个函数。

2.使用virtual关键字向基类函数添加虚函数属性。这将允许子类重写该函数。

3.在子类函数中使用override关键字。这将告诉编译器该函数是覆盖父类中的方法。

4.使用子类对象调用函数。当使用子类对象调用该函数时,将会执行子类函数而不是基类函数。

下面是一个简单的例子,其中类Animal是一个基类,而类Dog是一个子类:


#include <iostream>

using namespace std;

class Animal {

public:

  virtual void speak()

    cout << "This is animal speak." << endl;

  

};

class Dog : public Animal {

public:

  void speak() override

    cout << "This is dog speak." << endl;

  

};

int main() {

  Animal* animal = new Animal();

  animal->speak();

  Dog* dog = new Dog();

  dog->speak();

  Animal* dogAnimal = new Dog();

  dogAnimal->speak();

  return 0;

}

在该示例中,我们定义了类Animal和类Dog。类Animal包含一个虚函数speak,而类Dog重写了该函数。我们还创建了三个对象:一个Animal对象,一个Dog对象和一个Animal指向Dog对象的指针。在调用speak函数时,打印出了不同的内容。从机器翻译之后的结果看,这段代码实现了C++重写函数。

总而言之,C++中的重写函数允许子类重新定义基类函数以满足特定需求。通过使用virtual和override关键字,可以在子类中重写任何基类函数,并以相同的名称和参数调用该函数。

  
  

评论区

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