整个C++程序设计全面围绕面向对象的方式进行。类的继承特性是C++的一个非常重要的机制。继承特性可以使一个新类获得其父类的操作和数据结构,程序员只需在新类中增加原有类没有的成分。 在面试过程中,各大企业会考量你对虚函数、纯虚函数、私有继承、多重继承等知识点的掌握程度,因此就有了我们这一节的内容,开始 ...
分类:
编程语言 时间:
2016-06-06 12:02:36
阅读次数:
232
;抽象类 virtual void fun()=0 有一个这样的纯虚函数那么这个类就是抽象类 别的语言用abstruct来修饰说明这个类为抽象类 1 定义抽象类,如果一个类中有大于一个纯虚函数包括纯虚析构函数那么这个类就是抽象类,抽象类中不要加数据成员,只定义接口就好 如果实在没有要让派生类实现的函 ...
分类:
其他好文 时间:
2016-06-05 22:52:56
阅读次数:
115
老师的要求是给出shape类,派生出梯形,圆形,正方形和矩形4个类,然后根据他们的面积进行排序并且输出相应的信息。 一开始我遇到了一个问题,我没有将4个派生类定义成数组,导致定义出来的某个类对象使用完之后就被抹除了,从而导致原先的基类指针数组的指向丢失。纯虚函数的工作原理就是指针指向这个类,所以这个 ...
分类:
其他好文 时间:
2016-05-30 20:03:02
阅读次数:
142
做课程大纲性质的记录,根据大纲思考,有扩展阅读补充 1、考虑类之间能有什么样的联系和关系:组合,委托,继承 2、组合:包含其他类的对象 委托:包含其他类的指针 继承:包含并扩展,大部分是公有继承,is-a 3、虚函数:非虚函数,虚函数(virtual),纯虚函数(virtual、函数后边=0) 3. ...
分类:
其他好文 时间:
2016-05-29 22:50:11
阅读次数:
143
转载地址:http://blog.csdn.net/acs713/article/details/7352440 抽象类是一种特殊的类,它是为了抽象和设计的目的为建立的,它处于继承层次结构的较上层。 ⑴抽象类的定义: 称带有纯虚函数的类为抽象类。 ⑵抽象类的作用: 抽象类的主要作用是将有关的操作作为 ...
分类:
编程语言 时间:
2016-05-22 22:59:36
阅读次数:
414
纯虚函数:没必要或者不应该有函数体的虚函数,用"=0;"来取代函数体。有纯虚函数的类称为抽象类(缺少函数体),不允许直接用抽象类来创建对象。抽象类总数用来作为父类,由子类来实现(覆盖)那些纯虚函数,从而可以创建子类类型的对象。子类对象可以当成父类对象的引用,或者可以用父类指针指向子类对象。 ×××× ...
分类:
编程语言 时间:
2016-05-18 21:16:34
阅读次数:
230
一、接口的定义 有时候,我们得提供一些接口给别人使用。接口的作用,就是提供一个与其他系统交互的方法。其他系统无需了解你内部细节,并且也无法了解内部细节,只能通过你提供 给外部的接口来与你进行通信。根据c++的特点,我们可以采用纯虚函数的方式来实现。这样做的好处是能够实现封装和多态。现举一实例,供大家 ...
分类:
编程语言 时间:
2016-05-17 19:11:11
阅读次数:
184
前几天跟同事brainstorm,讨论一个关于纯虚类的使用问题,挺有意思。回来心中久久不能平静,写出来一吐为快。
不论在C++中还是C#中,纯虚类都是不能实例化的,这是因为纯虚类其实是一个对业务类型的一种高度抽象,本质上是不存在这种东西的,所以也就不能实例化它。对于C++中只要类中含有一个纯虚函数就是纯虚类,而C#中是abstract修饰的类就是纯虚类,即使类中没有虚方法也可以是纯虚类,在这里我...
分类:
其他好文 时间:
2016-05-13 04:03:54
阅读次数:
166
面向对象编程
--纯虚函数、容器与继承
I.纯虚函数
在函数形参后面写上 =0 以指定纯虚函数:
class Disc_item : public Item_base
{
public:
double net_price(size_t) const = 0; //指定纯虚函数
};
将函数定义为纯虚函数能够说明,该函数为后代类型提...
分类:
编程语言 时间:
2016-05-12 22:18:20
阅读次数:
184
1 公有继承 当派生类公有继承自 (public inheritance) 基类时,继承通常包含两个部分:一是函数的"接口" (interface),二是函数的"实现" (implementation) 如下,基类 Shape 中有三个不同形式的成员函数,分别代表公有继承的三种情况 1.1 纯虚函数 ...
分类:
编程语言 时间:
2016-05-11 21:55:31
阅读次数:
387