模板与泛型编程--模板定义引言: 所谓泛型程序就是以独立于不论什么特定类型的方式编写代码。使用泛型程序时,我们须要提供详细程序实例所操作的类型或值。 模板是泛型编程的基础。使用模板时能够无须了解模板的定义。 泛型编程与面向对象编程一样,都依赖于某种形式的多态性。面向对象编程中的多态性在执行时应用于存...
分类:
编程语言 时间:
2014-07-19 21:04:49
阅读次数:
283
类的多态性: Java语言中含有方法重载与成员覆盖两种形式的多态:(区别于c++) 方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。 成员覆盖:子类与父类允许具有相同的变量名称,但数据类型不同,允许具有相同的方法名称,但完成的功能不同。 ...
分类:
编程语言 时间:
2014-07-19 21:02:53
阅读次数:
269
1 //变量obj实际指向的是chinese类型的对象,调用ToString方法的时候,发现object类的tostring()方法是virtual类型,2 //所以先看chinese类有木有override,如果有则直接调用chinese的override方法,3 //如果木有则看chinese的...
分类:
其他好文 时间:
2014-07-18 23:19:52
阅读次数:
269
设计模式的第三大类型——行为模式,下面是对观察者模式、模板方法模式、命令模式、状态模式、职责链模式这五个的读后总结,欢迎交流!
观察者模式(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。[大话设计模式]
特点:类似于面向对象的多态,只是面向对象多态讲的是同一对象在不同时间和不同条件下表现...
分类:
其他好文 时间:
2014-07-18 21:33:15
阅读次数:
203
请说明下列代码的输出,并解释原因。#includeclass A{public: virtual ~A();};A::~A(){ printf("delete A\n");}class B : public A{public: ~B();};B::~B(){ printf("...
分类:
编程语言 时间:
2014-07-18 20:03:10
阅读次数:
281
局部优化:1、去除不需要的局部对象2、尽量通过引用,而不是传值,来处理对象3、把类中的小函数设置为内联函数4、对计算的处理: 一定会有的计算: 提前计算 (小的范围,计算量比较小) 可能会有的计算:延迟计算 不会有的计算: 不计算 5、利用模板代替虚函数6、尽量使用简单的数据类型7、不用使用虚函数的...
分类:
其他好文 时间:
2014-07-17 22:39:01
阅读次数:
232
类的继承的意思就如同父子关系一样,这个儿子继承了父亲的一切,但是在某些地方(属性)相同的时候,儿子的属性大于老子的属性(覆盖),最底层类,总会继承最接近它的那个类的属性init类的多态总是和继承相连的,没有继承,就没有多态一说.一个子类的实例,它即属于这个子类,也属于父类,比如:父亲A和儿子B,儿子...
分类:
编程语言 时间:
2014-07-17 18:20:15
阅读次数:
450
为了访问公有派生类的特定成员,可以通过讲基类指针显示转换为派生类指针。也可以将基类的非静态成员函数定义为虚函数(在函数前加上virtual) 1 #include 2 using namespace std; 3 4 class base{ 5 public: 6 /*virtual*/ ...
分类:
其他好文 时间:
2014-07-17 18:04:41
阅读次数:
300
在程序设计过程中,将程序描述成对数据进行操纵的算法(指令序列)。这虽然正确,但并非总是最有效的。现代程序往往采用名为面向对象编程(ObjectOrientedProgramming,OOP)的方法进行设计。在OOP中,程序被视为一系列交互对象的集合。以模拟程序为例,可以很容易地理解这种方法。..
分类:
其他好文 时间:
2014-07-17 15:30:57
阅读次数:
154
虚函数的一般实现模型:每一个class有一个virtual table,内含该class之中有作用的virtual function的地址,然后每个object有一个vptr,指向virtual table。识别class是否支持多态,唯一恰当的方法是看它是否有virtual function,只要...
分类:
编程语言 时间:
2014-07-17 14:21:11
阅读次数:
236