虚函数说明
虚函数,可实现也可不实现的函数
虚函数是为了允许用基类的指针来调用子类的这个函数
纯虚函数,代表函数没有被实现,在基类也不可实现
纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。
1 #include <iostream> 2 3 using namespace std; 4 5 6 // 基类 7 class Shape 8 { 9 public: 10 // 提供接口框架的纯虚函数 11 virtual int getArea() = 0; 12 void setWidth(int w) 13 { 14 width = w; 15 } 16 17 void setHeight(int h) 18 { 19 height = h; 20 } 21 22 protected: 23 int width; 24 int height; 25 }; 26 27 // 派生类 28 class Rectangle: public Shape 29 { 30 public: 31 int getArea() 32 { 33 return (width * height); 34 } 35 }; 36 37 class Triangle: public Shape 38 { 39 public: 40 int getArea() 41 { 42 return (width * height)/2; 43 } 44 }; 45 46 int main(void) 47 { 48 Rectangle Rect; 49 Triangle Tri; 50 51 Rect.setWidth(5); 52 Rect.setHeight(7); 53 // 输出对象的面积 54 cout << "Total Rectangle area: " << Rect.getArea() << endl; 55 56 Tri.setWidth(5); 57 Tri.setHeight(7); 58 // 输出对象的面积 59 cout << "Total Triangle area: " << Tri.getArea() << endl; 60 61 return 0; 62 }