使用基类指针调用虚函数
时间: 2023-09-17 21:12:01 浏览: 104
虚基类与虚函数-c++ 虚基类和虚函数 代码
使用基类指针调用虚函数时,如果该指针所指向的对象是基类对象,那么将调用基类中的虚函数;如果该指针所指向的对象是派生类对象,那么将调用派生类中的虚函数,即使该虚函数在基类和派生类中的函数签名不同,也会被正确地调用。
例如,假设有一个基类Animal和一个派生类Cat,它们都有一个名为speak的虚函数。使用基类指针调用speak函数的示例代码如下:
```c++
Animal *ptr_animal = new Cat();
ptr_animal->speak(); // 调用Cat类中的speak函数
```
在这个示例中,ptr_animal指针指向Cat类的一个对象,但是通过基类指针调用speak函数时,会调用Cat类中的speak函数。这是因为Cat类重写了Animal类中的speak函数,并且这个函数被声明为虚函数,所以在运行时会调用正确的函数。
阅读全文