抽象基类

Posted 木叶∞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象基类相关的知识,希望对你有一定的参考价值。

更多相关内容见http://www.cnblogs.com/mu-ye/p/7754368.html

    抽象基类通常代表一个通用概念。

纯虚函数

       把一个函数声明为纯虚函数可以清晰明了的告诉用户当前这个函数是没有实际意义的。

       和普通函数不一样,一个纯虚函数无须定义。我们通过在函数体的位置(即在声明语句的分号之前)书写=0就可以就可以将一个虚函数声明为纯虚函数。其中,=0只能出现在类内部的声明语句处。

       值得注意的是,我们也可以为纯虚函数提供定义,不过函数体必须定义在类的外部,也就是说,我们不能在类的内部为一个=0的函数提供函数体。

 

含有纯虚函数的类是抽象基类

    含有(或者未经覆盖直接继承)纯虚函数的类是抽象基类。抽象类负责定义接口,而后续的其他类可以覆盖该接口。我们不能(直接)创建一个抽象基类的对象。

   

关键概念:重构

    B继承A,在此体系中增加X类,使得X继承A,B继承X。这是重构的一个典型示例。

    重构负责重新设计类的体系以便将操作和/或数据从一个类移动到另一个类中。对于面向对象的应用程序来说,重构是一种很普遍的现象。

    值得注意的是,即使我们改变了整个继承体系,那些使用了A或B的代码也无须进行任何改动。

 

 

以上是关于抽象基类的主要内容,如果未能解决你的问题,请参考以下文章

python之协议到抽象基类3

派生自抽象基类并调用另一个类中的方法的 C++ 包装类,该类也派生自抽象基类

Python中的抽象基类

Python中的抽象基类

python中的抽象基类及相关用途

python中的抽象基类及相关用途