在C++中,可以通過指針或引用來實現多態,實現多態的前提是父類至少要有一個虛函數。下面是一個簡單的例子來說明Instance的多態使用技巧:
#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
函數中,我們創建了兩個Animal
類的實例,分別指向Dog
和Cat
對象,然后通過指針調用makeSound
方法,實現了多態。
通過多態,我們可以在運行時確定調用的方法是父類的方法還是子類的方法,從而實現動態綁定。這種機制可以增加代碼的靈活性和可擴展性。