c++ 虚函数 经典例题
时间: 2023-09-06 12:01:42 浏览: 119
虚函数是面向对象编程中的重要概念之一。它允许在基类中定义一个函数,然后由派生类进行重写,实现多态的特性。下面是一个经典的虚函数例题。
假设有一个基类Animal(动物),它有一个虚函数sound(发出声音)。派生类Cat(猫)和Dog(狗)都继承自Animal类,但它们会发出不同的声音。
在基类Animal中,我们定义一个虚函数sound(),它只输出"动物发出声音"。在派生类Cat和Dog中,我们分别重写这个虚函数,Cat类中的sound()输出"猫发出喵喵声",Dog类中的sound()输出"狗发出汪汪声"。
接下来,我们创建Animal类的指针并分别指向Cat和Dog对象,然后通过这个指针调用sound()函数。由于sound()是一个虚函数,在运行时会根据指针所指向的对象的实际类型来决定调用哪个版本的sound()函数。因此,当指针指向Cat对象时,调用sound()函数会输出"猫发出喵喵声";当指针指向Dog对象时,调用sound()函数会输出"狗发出汪汪声"。
这个例题展示了虚函数的多态性。通过一个指向基类的指针,我们可以调用不同派生类中的同名函数,实现了动态绑定和运行时多态的效果。虚函数是面向对象编程中非常重要的特性,可以让代码更加灵活和可扩展。
阅读全文