c++基类指针调用子类方法
作者:野牛程序员:2023-08-07 10:12:12 C++阅读 3432
在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++父类指针指向子类对象
