C++ 虚函数的详解及简单实例

时间:2022-04-11 08:09:35

C++ 虚函数的详解

虚函数的使用和纯虚函数的使用。

虚函数是在基类定义,然后子类重写这个函数后,基类的指针指向子类的对象,可以调用这个函数,这个函数同时保留这子类重写的功能。

纯虚函数是可以不用在基类定义,只需要声明就可以了,然后因为是纯虚函数,是不能产生基类的对象,但是可以产生基类的指针。

纯虚函数和虚函数最主要的区别在于,纯虚函数所在的基类是不能产生对象的,而虚函数的基类是可以产生对象的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// pointers to base class
#include <iostream>
using namespace std;
class Polygon {
 protected:
  int width, height;
 public:
  void set_values (int a, int b)
   { width=a; height=b; }
  virtual int area(){
    return 0;
  }
};
 
class Rectangle: public Polygon {
 public:
  int area()
   { return width*height; }
};
 
class Triangle: public Polygon {
 public:
  int area()
   { return width*height/2; }
};
 
int main(){
  Polygon *p1,*p2;
  Rectangle rec;
  Triangle tri;
  p1 = &rec;
  p2 = &tri;
  p1->set_values(1,2);
  p2->set_values(2,4);
  cout << rec.area() << endl;
  cout << tri.area() << endl;
  cout << p1->area() << endl;
  cout << p2->area() << endl;
  return 0;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/worldmakewayfordream/article/details/46801663