什么是虚函数?虚函数的主要作用是什么?并举例说明
时间: 2023-07-30 13:08:05 浏览: 156
虚函数是在 C++ 中使用的一种特殊函数,它允许子类重写父类的方法。当一个类有一个或多个虚函数时,该类就被称为多态类。
虚函数的主要作用是实现运行时多态。这意味着在程序执行期间,可以根据对象的实际类型来确定调用哪个虚函数,而不是根据指针或引用的类型来确定。
以下是一个简单的虚函数示例:
```c++
class Animal {
public:
virtual void makeSound() {
cout << "This is an animal sound." << endl;
}
};
class Cat : public Animal {
public:
void makeSound() {
cout << "Meow!" << endl;
}
};
class Dog : public Animal {
public:
void makeSound() {
cout << "Woof!" << endl;
}
};
int main() {
Animal* animal1 = new Cat();
Animal* animal2 = new Dog();
animal1->makeSound(); // 输出 "Meow!"
animal2->makeSound(); // 输出 "Woof!"
delete animal1;
delete animal2;
return 0;
}
```
在上面的示例中,Animal 类有一个虚函数 makeSound(),它被子类 Cat 和 Dog 重写。在 main() 函数中,我们创建了一个指向 Cat 对象的 Animal 指针和一个指向 Dog 对象的 Animal 指针。然后,我们调用 makeSound() 函数,输出每个对象实际类型的声音。
如果没有使用虚函数,Animal 指针将只能调用 Animal 类中的 makeSound() 函数,而无法调用子类中的 makeSound() 函数。
阅读全文