纯虚函数是实现函数多态的技术手段。
View Code
1 #include <iostream>
2 #include <string>
3 using namespace std;
4
5 class Animal
6 {
7 public:
8 virtual void play() = 0; // 纯虚函数
9 };
10
11 class Dog : public Animal
12 {
13 public:
14 virtual void play()
15 {
16 cout << "狗狗叫" << endl;
17 }
18 };
19
20 class Cat : public Animal
21 {
22 public:
23 virtual void play()
24 {
25 cout << "猫叫" << endl;
26 }
27 };
28
29 void main()
30 {
31 Animal *o1,*o2;
32 o1 = new Dog;
33 o2 = new Cat;
34 o1->play();
35 o2->play();
36
37 delete o1;
38 delete o2;
39 }
输出:
狗狗叫
猫叫
请按任意键继续. . .
通过纯虚函数play实现了多态技术。
注意的几点:
1、抽象类,也就是含有纯虚成员函数的类。是不可以实例化对象的。
如:
View Code
1 Animal o1; // 报错,抽象类不能实例化。
2
3 Animal *o1; // 不报错
4
5 // 从中可以看出,申明普通对象时,会申请内存;申明指针对象时,需要显示的调用new delete 或者malloc free 实现实例化。
2、MFC、COM技术大量的使用了纯虚函数技术。
// 还需要总结提炼