C++ 虚函数和多态

1、虚函数(virtual functions)

虚函数(virtual functions)是一种允许在派生类中重写基类函数的特性。通过在基类中声明虚函数,可以在派生类中重新实现(override)该函数,从而实现多态性(polymorphism)。

2、多态(polymorphism)

多态(polymorphism)是面向对象编程中的一个重要概念,它允许不同类的对象对同一消息(函数调用)作出不同的响应。主要通过虚函数和继承来实现。

3、示例源码

#include <iostream>
using namespace std;

// 基类
class Animal {
public:
    // 虚函数
    virtual void makeSound() {
        cout << "Animal makes a sound." << endl;
    }
};

// 派生类 Dog
class Dog : public Animal {
public:
    // 重写基类中的虚函数
    void makeSound() override {
        cout << "Dog barks" << endl;
    }
};

// 派生类 Cat
class Cat : public Animal {
public:
    // 重写基类中的虚函数
    void makeSound() override {
        cout << "Cat meows" << endl;
    }
};

int main() {
    Animal* animal;

    Dog dog;
    Cat cat;

    // 指向不同派生类对象的基类指针
    animal = &dog;
    animal->makeSound(); // 调用 Dog 类的 makeSound 函数

    animal = &cat;
    animal->makeSound(); // 调用 Cat 类的 makeSound 函数

    return 0;
}

Animal类有一个虚函数makeSound,并且Dog和Cat类分别重写了这个虚函数。在main函数中,通过将不同派生类对象的地址赋给基类指针,然后调用虚函数makeSound,实际上会根据对象的实际类型调用对应的函数。

相关推荐

  1. C++ 函数

    2024-03-22 19:54:03       38 阅读
  2. C++ 函数

    2024-03-22 19:54:03       29 阅读
  3. C++ 函数

    2024-03-22 19:54:03       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 19:54:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 19:54:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 19:54:03       82 阅读
  4. Python语言-面向对象

    2024-03-22 19:54:03       91 阅读

热门阅读

  1. MPI4.1文档3-MPI过程与MPI数据类型

    2024-03-22 19:54:03       34 阅读
  2. 1064:奥运奖牌计数

    2024-03-22 19:54:03       43 阅读
  3. c++算法学习笔记 (14) 并查集

    2024-03-22 19:54:03       38 阅读
  4. SpringBoot自定义starter开发:定时任务报表开发

    2024-03-22 19:54:03       36 阅读
  5. Rust无法流行起来

    2024-03-22 19:54:03       44 阅读
  6. sqlite简单的增删改查

    2024-03-22 19:54:03       45 阅读
  7. 什么是设计模式?

    2024-03-22 19:54:03       43 阅读
  8. Springboot vue elementui 超市管理系统

    2024-03-22 19:54:03       36 阅读