纯虚函数的讨论

纯虚函数是实现函数多态的技术手段。

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技术大量的使用了纯虚函数技术。

  // 还需要总结提炼

posted on 2012-03-19 22:13  笔记吧... 可能只有自己看得懂  阅读(161)  评论(0编辑  收藏  举报