06 2013 档案
摘要:C++虚函数与纯虚函数用法与区别(转)1.虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstractclass),而只含有虚函数的类(class)不能被称为抽象类(abstractclass)。 2.虚函数可以被直接使用,也可以被子类(subclass)重载以后以多态的形式调用,而纯虚函数必须在子类(subclass)中实现该函数才可以使用,因为纯虚函数在基类(baseclass)只有声明而没有定义。3.虚函数和纯虚函数都可以在子类(subclass)中被重载,以多态的形式被调用。4.虚函数和纯虚函数通常存在于抽象基类(abstractbaseclas.
阅读全文
摘要:在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。
阅读全文
摘要:在Android的框架层,也定义了由Android封装的OpenMax接口,和标准的接口概念基本相同,但是使用C++类型的接口,并且使用了Android的Binder IPC机制。Android封装OpenMax的接口被StageFright使用,OpenCore没有使用这个接口,而是使用其他形式对OpenMax IL层接口进行封装。对于我们使用硬件来解码来说,主要是使用了openmax的il层,也即是集成层,就是由硬件厂商提供好了c的接口,供我们多媒体程序来调用,最终能够完成我们的解码和编码工作。具体的框架如:http://www.androidcn.com/news/20110329/00
阅读全文
摘要:一般这个问题,就是头文件没有被包含。如果一个enum的声明是如下的: enum { kWhatFillThisBuffer = 'fill', kWhatDrainThisBuffer = 'drai', kWhatEOS = 'eos ', kWhatShutdownCompleted = 'scom', kWhatFlushCompleted = 'fcom', kWhatOutputFormatChanged = 'outC', ...
阅读全文
摘要:可以看到,在这个接口类中定义了IMediaPlayerService需要提供的6个函数接口,因为是接口类,所以定义为纯虚函数。需要注意这个接口类的名称有严格要求,必须是以大写字母I开始。重点关注在这些函数前面的一个宏定义:DECLARE_META_INTERFACE(MediaPlayerService)。这个宏定义必须要有,其中封装了实现binder所需要的一些类成员变量和成员函数, 通过这些成员函数可以为一个binder实现创建proxy。这个宏定义在文件frameworks\base\include \utils\IInterface.h里,在后面还会讲到。这个宏定义的参数必须是接口类的
阅读全文