一个包含一个或多个纯虚函数的类叫做抽象类。使用关键字abstract声明。抽象类不能初始化,只提供部分实现。可以被继承,继承抽象类的类必须实现抽象类中的虚方法。抽象类只能通过接口或是作为其他类的基类使用。抽象类能够被用于类,属性,方法,索引和事件。使用abstract声明表示要作为其他类的基类使用,...
1.纯虚函数的定义: (1)虚函数被“初始化”为0的函数。声明纯虚函数的一般形式是virtual 函数类型 函数名(参数表列) =0;(2)纯虚函数没有函数体;(3)最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”; (4)这是一个声明语句,最后必须加分号。(...
分类:
编程语言 时间:
2014-11-13 18:53:43
阅读次数:
170
设计模式之代理模式Demo如下:定义一个虚基类,声明三个纯虚函数,我定义一个Person类Person.h定义一个Student类来继承这个Person类,并实现相应的虚函数Student.hStudent.cpp定义一个代理类Delegate,同时继承自Person类Delegate.cppmai...
分类:
其他好文 时间:
2014-11-11 22:33:48
阅读次数:
281
一、背景知识(一些基本概念)虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。纯虚函数(Pure Virtual Function):基类中没有实现体的虚函数称为纯虚函数(有纯虚函数的基类称为虚基类)。C++ “虚函数”的存在是为...
分类:
编程语言 时间:
2014-11-09 00:52:12
阅读次数:
378
一为了方便使用多态特性,常常需要在基类中定义虚拟函数。在很多情况下,积累本身生成对象是不合理的。例如,动物作为一个基类可以派生出猫、狗、猴子、熊、牛等子类,但动物本身生成对象明显不合常理。为了解决上述问题,引入了纯虚函数的概念,江汉数定义为纯虚函数,编译器要求在派生类中必须予以重载以实现多态性。同时...
分类:
编程语言 时间:
2014-11-08 11:55:10
阅读次数:
191
近日在修改了一下下cocos2d-x的引擎代码(为了自己的组件),发现有些类的访问形式比较怪异,明明有些接口是只有特定类及其内部函数才去访问,却不使用友元声明的形式进行数据访问——当然使用了普通非virtual的形式也就是意味着不建议重载。
故此:
1、建议派生类(或允许)重载的声明为虚函数即virtual类型,
2、强制派生类实现的声明为纯虚函数
3、不希望派生类重载或覆盖的函数则为普通...
分类:
其他好文 时间:
2014-11-03 20:57:22
阅读次数:
196
通过代码演示了在继承结构中,函数覆盖,虚函数,纯虚函数的关系。...
分类:
编程语言 时间:
2014-10-29 17:00:51
阅读次数:
186
纯虚函数和普通的虚函数不一样,一个纯虚函数无须定义。我们通过在函数体的位置(即在声明语句的分号之前)书写=0就可以将一个虚函数说明为纯虚函数。其中,=0只能出现在类内部的虚函数声明语句处。指的注意的是,我们也可以为纯虚函数提供定义,不过函数体必须定义在类的外部。也就是说,我们不能在类的内部为一个=0...
分类:
其他好文 时间:
2014-10-29 10:31:55
阅读次数:
109
1.虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只含有虚函数的类不能被称为抽象类。2.虚函数可以被直接使用,也可以被子类重载以后,以多态的形式调用,而纯虚函数必须在子类中实现该函数才可以使用,因为纯虚函数在基类有声明而没有定义。3.虚函数和纯虚函数都可以在子类中被重载,以多...
分类:
编程语言 时间:
2014-10-26 01:34:22
阅读次数:
183