21xrx.com
2025-06-16 16:13:37 Monday
登录
文章检索 我的文章 写文章
C++实训7:多态与虚函数
2023-07-09 07:50:54 深夜i     24     0
多态 虚函数 继承 动态绑定 重载

在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++中重要的面向对象编程概念,它们的运用可以大大提高代码的复用性和可扩展性,使代码更加灵活和高效。需要注意的是,在使用虚函数时需要注意重写和对象的类型匹配问题。

  
  

评论区