c++基类指针调用子类方法
作者:野牛程序员:2023-08-07 10:12:12 C++阅读 3129
在C++中,可以使用基类指针来调用子类的方法,这是通过虚函数和多态实现的。为了能够在基类指针上调用子类的方法,需要满足以下两个条件:
子类方法必须在基类中声明为虚函数。
子类必须继承自基类。
当子类继承自基类并重写了虚函数时,基类指针可以指向子类对象,并调用子类重写的方法。
下面是一个简单的示例,演示如何使用基类指针调用子类方法:
#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: Woof! Woof!" << std::endl; } }; class Cat : public Animal { public: void makeSound() override { std::cout << "Cat meows: Meow! Meow!" << std::endl; } }; int main() { Animal* animal1 = new Dog(); Animal* animal2 = new Cat(); // 使用基类指针调用子类方法 animal1->makeSound(); // 调用的是Dog类的makeSound方法 animal2->makeSound(); // 调用的是Cat类的makeSound方法 delete animal1; delete animal2; return 0; }
在上述例子中,定义了一个基类Animal
,以及两个子类Dog
和Cat
,它们都继承自Animal
类,并重写了makeSound()
虚函数。在main()
函数中,我们使用基类指针分别指向Dog
和Cat
对象,并通过这些指针调用了相应的子类方法。由于makeSound()
是虚函数且被子类重写,所以调用的是子类的方法而不是基类的方法。
使用基类指针来调用子类的方法是多态的体现,它允许我们以统一的方式处理不同类型的子类对象。这在面向对象编程中是一个重要的概念,使得代码更加灵活和可扩展。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++ 释放指针所指向的对象
- 下一篇:c++父类指针指向子类对象