在C++中,可以通過指針或引用來實現(xiàn)多態(tài),實現(xiàn)多態(tài)的前提是父類至少要有一個虛函數(shù)。下面是一個簡單的例子來說明Instance的多態(tài)使用技巧:
#include <iostream>
class Animal {
public:
virtual void makeSound() {
std::cout << "Animal makes a sound" << std::endl;
}
};
class Dog : public Animal {
public:
void makeSound() override {
std::cout << "Dog barks" << std::endl;
}
};
class Cat : public Animal {
public:
void makeSound() override {
std::cout << "Cat meows" << std::endl;
}
};
int main() {
Animal* animal1 = new Dog();
Animal* animal2 = new Cat();
animal1->makeSound();
animal2->makeSound();
delete animal1;
delete animal2;
return 0;
}
在上面的例子中,我們定義了一個Animal
類,并且派生了Dog
和Cat
類,它們都重寫了makeSound
方法。在main
函數(shù)中,我們創(chuàng)建了兩個Animal
類的實例,分別指向Dog
和Cat
對象,然后通過指針調(diào)用makeSound
方法,實現(xiàn)了多態(tài)。
通過多態(tài),我們可以在運行時確定調(diào)用的方法是父類的方法還是子類的方法,從而實現(xiàn)動態(tài)綁定。這種機(jī)制可以增加代碼的靈活性和可擴(kuò)展性。