虚函数的使用和纯虚函数的使用。
虚函数是在基类定义,然后子类重写这个函数后,基类的指针指向子类的对象,可以调用这个函数,这个函数同时保留这子类重写的功能。
纯虚函数是可以不用在基类定义,只需要声明就可以了,然后因为是纯虚函数,是不能产生基类的对象,但是可以产生基类的指针。
纯虚函数和虚函数最主要的区别在于,纯虚函数所在的基类是不能产生对象的,而虚函数的基类是可以产生对象的。
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