头歌c++实训13虚函数
时间: 2023-10-18 19:19:29 浏览: 267
好的,虚函数是一种在父类中声明的函数,其关键字为virtual,且在子类中可以被重新定义的函数。虚函数的作用是实现多态性,即同一个函数名可以被不同的子类重载,从而实现不同的功能。
下面以一个简单的例子来说明虚函数的用法:
```c++
#include <iostream>
using namespace std;
class Shape {
protected:
int width, height;
public:
Shape( int a = 0, int b = 0) {
width = a;
height = b;
}
virtual int area() {
cout << "Parent class area :" <<endl;
return 0;
}
};
class Rectangle: public Shape {
public:
Rectangle( int a = 0, int b = 0):Shape(a, b) { }
int area () {
cout << "Rectangle class area :" <<endl;
return (width * height);
}
};
int main() {
Shape *shape;
Rectangle rec(10,7);
shape = &rec;
// 调用矩形的求面积函数 area
shape->area();
return 0;
}
```
在上面的代码中,Shape 是一个基类,其中有一个虚函数 area(),Rectangle 是一个派生类,它继承了 Shape 并重载了 area() 函数。在 main() 函数中,我们创建了一个 Rectangle 对象,然后将其地址赋给了一个 Shape 指针。通过调用这个指针的 area() 函数,我们可以看到输出了“Rectangle class area”。
这说明在调用派生类的函数时,会优先调用派生类中的同名函数,而不是基类中的函数。这就是多态性的体现。
阅读全文