在C++中,多態(tài)是指允許使用基類指針或引用來操作派生類對象。通過虛函數(shù)(virtual function)實(shí)現(xiàn)多態(tài)。下面是一個(gè)簡單的例子來說明如何在C++類中使用多態(tài):
#include <iostream>
using namespace std;
class Animal {
public:
virtual void makeSound() {
cout << "The animal makes a sound" << endl;
}
};
class Dog : public Animal {
public:
void makeSound() override {
cout << "The dog barks" << endl;
}
};
int main() {
Animal* animal = new Dog(); // 創(chuàng)建一個(gè)Dog對象,并用Animal類型的指針指向它
animal->makeSound(); // 調(diào)用makeSound()函數(shù),輸出結(jié)果為 "The dog barks"
delete animal; // 釋放內(nèi)存
return 0;
}
在這個(gè)例子中,我們使用基類Animal
的指針指向了一個(gè)派生類Dog
的對象。當(dāng)我們調(diào)用animal->makeSound()
時(shí),實(shí)際上調(diào)用的是派生類Dog
中的makeSound()
函數(shù),而不是基類Animal
中的makeSound()
函數(shù)。這就是多態(tài)的體現(xiàn)。