内存泄露方式;抽象类;虚函数;

内存泄露方式:

堆内存泄漏(Heap leak)。对内存指的是程序运行中根据需要分配通过malloc,realloc new等从堆中分配的一块内存,再是完成后必须通过调用对应的 free或者delete 删掉。如果程序的设计的错误导致这部分内存没有被释放,那么此后这块内存将不会被使用,就会产生Heap Leak. 

   系统资源泄露(Resource Leak).主要指程序使用系统分配的资源比如 Bitmap,handle ,SOCKET等没有使用相应的函数释放掉,导致系统资源的浪费,严重可导致系统效能降低,系统运行不稳定。  

抽象类:

1.应用上
    a.类的部分方法是确定的,而另外部分方法是不确定的,不确定的需要在子类中实现。这样抽象类可以减少子类的代码实现(重用),这可以看成是一种代码重用。比如固定的算法,业务流程(策略模式)等
    b.类的所有方法都是不确定的,但又必须有这些方法。这种情况下这些方法更象是一种约定,或是一种规范。也就是说抽象类刻画了一组子类的操作接口的通用语义,抽象类只描述这组子类共同的操作接口。

    c.为了更方便的使用多态性,我们常常在基类中定义虚函数,但在很多情况下,基类本身生成对象是不合理的。例如:动物作为基类可以派生出其他具体物种,但如果使用动物生成对象就会觉得很怪。这种情况下,基类的功能就更像b描述的描述这组子类共同的操作接口,所以定义成纯虚函数合理些。(抽象类不能实例化)
    2.结构上
    a.它处于继承层次结构的较上层。抽象类是不能定义对象的,在实际中为了强调一个类是抽象类,可将该类的构造函数说明为保护的访问控制权限。
    b.层次结构中,由它来为它们提供一个公共的根,相关的子类是从这个根派生出来的。


1、多态性

  指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。

  a.编译时多态性:通过重载函数实现

b 运行时多态性:通过虚函数实现。

2、虚函数

  虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数,可实现成员函数的动态重载

3、抽象类

  包含纯虚函数的类称为抽象类。由于抽象类包含了没有定义的纯虚函数,所以不能定义抽象类的对象。

虚函数

posted on 2013-05-15 19:14  KHacker  阅读(151)  评论(0编辑  收藏  举报