虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。 class Cman { public: ...
分类:
编程语言 时间:
2016-09-24 20:30:30
阅读次数:
194
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次: c ...
分类:
编程语言 时间:
2016-09-22 19:49:35
阅读次数:
150
在C#中使用关键字 abstract 来定义抽象类和抽象方法。 不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例。 "一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被实例化,进一步一个抽象类只能通过接口和作为其它类的基类使用."- C++ Program ...
class C :public A{ int data_c;public: C(){ data_c = 3; cout << "C " ; } C(int a, int b) :A(a){ data_c = b; cout << "C(a) " ; } void show(){ A::show(); ...
分类:
编程语言 时间:
2016-09-18 23:45:01
阅读次数:
220
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。 class Cman { public: ...
分类:
编程语言 时间:
2016-09-03 22:23:33
阅读次数:
165
从理论上来说,这三个概念很容易背的滚瓜烂熟,但是从大学毕业到现在,我都没真正搞明白这三个东西的出现,究竟是为了做到什么事情。 也许之前我很少写代码,更很少写面向对象的代码,即使有写多半也很容易写回到面向过程的老路上去。在写面向过程的代码的时候,根本不管什么函数重载和覆盖,想到要什么功能就变得法子的换 ...
分类:
其他好文 时间:
2016-09-03 06:15:06
阅读次数:
125
1.虚函数(impure virtual),C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。 子类可以重写父类的虚函数实现子类的特殊化。 2.纯虚函数(pure virtual),C++中包含纯虚函数的类,被称为是“抽象类”。抽象类不能使用new出对象,只有 ...
分类:
编程语言 时间:
2016-08-26 13:52:23
阅读次数:
210
今天阅读《设计模式示例》,看到一段代码涉及到了interface,implements和extends,其实在C++中经常用到。今天特百度,比较了一下: interface是一个接口,类似于C++中的纯虚函数。举个简单的例子,有一类东西,都具有同样的行为,而这个共有的行为实现方式不一样。如:笔这类东 ...
分类:
编程语言 时间:
2016-08-22 19:39:33
阅读次数:
152
意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 结构 Component:定义一个对象接口,可以给这些对象动态地添加职责;(纯虚函数) ConcreteComponent:定义一个具体的Component,继承自Component,重写了Com ...
分类:
其他好文 时间:
2016-08-12 11:48:25
阅读次数:
111
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。 class Cman { public: ...
分类:
编程语言 时间:
2016-08-04 21:38:15
阅读次数:
236