纯虚函数
2017-08-14 15:24
155 查看
编程是要符合实际生活的,假如我们现在要实现一个观察动物生活的软件。我们要定义许多的动物类来具体记录它们的生活习性。假如我们要调用某一动物的资料,很简单我们可以通过实例化对象通过访问函数来得到。但是有一天领导要来检查,需要我们把所有动物的资料全部调出来,这时候通过定义对象,就显得佷麻烦。这样我们想通过调用一个公有函数来得到所有资料。函数参数要接受所有动物类,前边博文中提到的赋值兼容规则恰好符合我们的要求,我们利用父类指针接收所有动物类。这就需要我们定义一个所有动物的父类。加入就定义为动物类,所有动物的公有习性都可以在动物类中定义,但是我们不可以实现这些函数,因为动物是一种抽象名词,不可能真正有像鸟,狗一样吃,睡,走等属性。所以我觉得那些伟大的程序员不单单是科学家,他们一定都是有生活的人才能发明出这么伟大的语言。这就引出我们今天的主题纯虚函数。
纯虚函数:是指被被标明为不具体实现的虚拟成员函数。它用于这样的情况:定义一个基类时,会遇到无法定义基类中虚函数的具体实现,其实现依赖于不同的派生类。
格式:virtual 返回值 函数名(参数列表) = 0;
我们简单把上述例子以程序介绍:
我们可以从例子中看出,我们的程序具有通用性。
含有纯虚函数的类,我们成为抽象类(如例子中的A类),抽象类不能实例化对象(与实际违背)。具体类继承抽象类要实现所有纯虚函数,不然由于继承相当于拷贝一份父类到子类来由于没有实现所有纯虚函数,所以它还是一个抽象类。
纯虚函数是一种程序通用性的思想,需要我们慢慢体会。
如有错误之处还请指教。
纯虚函数:是指被被标明为不具体实现的虚拟成员函数。它用于这样的情况:定义一个基类时,会遇到无法定义基类中虚函数的具体实现,其实现依赖于不同的派生类。
格式:virtual 返回值 函数名(参数列表) = 0;
我们简单把上述例子以程序介绍:
我们可以从例子中看出,我们的程序具有通用性。
含有纯虚函数的类,我们成为抽象类(如例子中的A类),抽象类不能实例化对象(与实际违背)。具体类继承抽象类要实现所有纯虚函数,不然由于继承相当于拷贝一份父类到子类来由于没有实现所有纯虚函数,所以它还是一个抽象类。
纯虚函数是一种程序通用性的思想,需要我们慢慢体会。
如有错误之处还请指教。
相关文章推荐
- 十四周项目三设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数(第一次做完老师发的试题,还有时间做OJ上面的题,贵在坚持)
- 基类析造函数是纯虚函数时,则必须在中实现其方法
- C++中的多态-虚函数-纯虚函数-抽象类
- 出现错误cannot allocate an object of abstract type“ ” 纯虚函数
- C++ 虚函数&纯虚函数&抽象类&接口&虚基类(转)
- 虚函数与纯虚函数
- C++虚函数和纯虚函数的区别
- C++ 抽象类与纯虚函数
- (1.1.10)虚函数、纯虚函数和虚继承的区别以及“覆盖”的概念
- C++中的多态性和纯虚函数
- 【转自tonywearme】我为什么要为纯虚函数写出实现
- C++虚函数(11) - 纯虚函数与抽象类
- 第十三周项目二 形状类族中的纯虚函数
- 第13周项目2-形状类族的中的纯虚函数
- 第十三周项目2--形状类族的中的纯虚函数
- 第十三周项目二-形状类族中的纯虚函数
- C++ Primer学习笔记(14)——虚函数的实现机制、纯虚函数
- 关于C++虚函数和纯虚函数
- C++虚函数与纯虚函数的区别
- 纯虚函数和虚函数的区别