C++之?虚函数

2024-01-08 21:01:43

虚函数是C++中的一个重要概念,它主要用于实现多态。在基类中声明一个虚函数,派生类可以重写这个函数,从而实现不同的功能。当基类指针或引用指向派生类对象时,调用虚函数会根据实际对象类型来调用相应的派生类中的函数实现,这就是多态的体现。

举例说明:

#include <iostream>
using namespace std;
?
// 基类
class Animal {
public:
    // 虚函数
    virtual void makeSound() {
        cout << "Animal makes a sound" << endl;
    }
};
?
// 派生类1
class Dog : public Animal {
public:
    // 重写虚函数
    void makeSound() override {
        cout << "Dog barks" << endl;
    }
};
?
// 派生类2
class Cat : public Animal {
public:
    // 重写虚函数
    void makeSound() override {
        cout << "Cat meows" << endl;
    }
};
?
int main() {
    // 基类指针指向派生类对象
    Animal* animalPtr = new Dog();
    animalPtr->makeSound(); // 输出:Dog barks
?
    delete animalPtr;
?
    // 基类引用指向派生类对象
    Animal& animalRef = *new Cat();
    animalRef.makeSound(); // 输出:Dog barks
?
    delete &animalRef;
    system("pause");
    return 0;
}
?

在这个例子中,基类Animal有一个虚函数makeSound(),派生类Dog和Cat分别重写了这个函数。当我们使用基类指针或引用指向派生类对象时,调用makeSound()会根据实际对象类型(即Dog或Cat)来调用相应的派生类中的函数实现。这就是虚函数实现多态的一个典型例子。

文章来源:https://blog.csdn.net/T20151470/article/details/135464853
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。