21xrx.com
2024-12-22 21:22:00 Sunday
登录
文章检索 我的文章 写文章
C++实训7:多态与虚函数
2023-07-09 07:50:54 深夜i     --     --
多态 虚函数 继承 动态绑定 重载

在C++中,有一个面向对象编程的核心概念——多态。多态指的是在运行时选择正确的方法或对象的能力。简单来说,多态允许不同类的对象对同一消息作出不同的响应。

C++的多态主要是通过虚函数来实现的。虚函数是在父类中声明的虚函数,在派生类中进行重写的函数。使用虚函数的目的是让程序调用正确的派生类方法。当通过基类指针调用虚函数时,程序将根据实际对象的类型来调用正确的派生类的方法。

虚函数的声明方式为:virtual 函数类型 函数名(参数列表)。使用虚函数需要注意以下几点:

1.虚函数的使用需要在类中声明它为虚函数,并且在派生类中也需要使用 virtual 关键字进行声明。

2.虚函数可以被重写,在派生类中进行重写。

3.虚函数的调用是根据实际对象的类型进行的。

下面是一个简单的示例,展示了多态和虚函数的基本用法:


#include <iostream>

using namespace std;

class Animal {

public:

  virtual void say()

    cout << "Animal says hello!" << endl;

  

};

class Cat : public Animal {

public:

  void say()

    cout << "Cat says meow!" << endl;

  

};

class Dog : public Animal {

public:

  void say()

    cout << "Dog says bark!" << endl;

  

};

int main() {

  Animal* animal;

  Cat cat;

  animal = &cat;

  animal->say();

  Dog dog;

  animal = &dog;

  animal->say();

  return 0;

}

运行结果如下:


Cat says meow!

Dog says bark!

我们可以看到,animal 指向不同的实例时,调用的虚函数也不同,这就是多态的体现。

总结:多态和虚函数是C++中重要的面向对象编程概念,它们的运用可以大大提高代码的复用性和可扩展性,使代码更加灵活和高效。需要注意的是,在使用虚函数时需要注意重写和对象的类型匹配问题。

  
  

评论区

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