在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
方法,实现了多态。
通过多态,我们可以在运行时确定调用的方法是父类的方法还是子类的方法,从而实现动态绑定。这种机制可以增加代码的灵活性和可扩展性。