多态特性:
提起面向对象,很自然地想到三大特性:封装、继承、多态。他们的目录分别是:
1. 封装,使代码模块化封装内部结构和状态。
2. 继承,用于扩展原有代码。
3. 多态,方便接口重用,通过同一接口和传入的对象调用适用于不同对象的实现。多态在运行时绑定函数,而非多态则在编译期就已确定了函数的调用地址。
从架构设计的层面来看多态有什么好处呢?将源码和运行的依赖进行反转。
通常...
分类:
编程语言 时间:
2014-11-27 16:23:36
阅读次数:
231
(1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如...
分类:
其他好文 时间:
2014-11-26 18:20:38
阅读次数:
112
Traits不是一种语法特性,而是一种模板编程技巧。Traits在C++标准库,尤其是STL中,有着不可替代的作用。 如何在编译期间区分类型 下面我们看一个实例,有四个类,Farm、Worker、Teacher和Doctor,我们需要区分他们是脑力劳动者还是体力劳动者。以便于做出不同的行动。 这里的...
分类:
其他好文 时间:
2014-11-26 01:25:33
阅读次数:
237
多态是一种能够令单一泛型标记关联不同特定行为的能力,对面向对象程序设计而言多态是一块基石。C++中通过继承和虚函数实现在运行期处理这种行为的能力,我们称为动多态。然而模板也允许我们使用这种单一泛型标记来关联不同的特定行为,这种关联是在编译期间进行处理的,我们称之为静多态。
分类:
其他好文 时间:
2014-11-19 21:59:41
阅读次数:
268
如果我们想知道一个宏的值应该怎么办? 要么在代码里加一句printf 要么在编译的时候gcc -E 第一种方法需要程序运行起来,颇为麻烦 第二种方法无法应付下面这些情况 比如宏的值等于sizeof(struct xxoo) 比如宏本身...
分类:
其他好文 时间:
2014-11-18 13:38:46
阅读次数:
765
一,定义: 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。
二,其类图:
三,分类一:静态代理
1,介绍:也就是需要我们为目标对象编写一个代理对象,在编译期就生成了这个代理对象,然后通过访问这个代理,来实现目标对象某些功能。...
分类:
编程语言 时间:
2014-11-18 13:30:30
阅读次数:
295
由于网上下载的 libcurl 不支持 gzip,只好自己动手编译,期间走了很多弯路,下面是最终成功的记录。我所使用的环境 Visual Studio 2010 、 Windows 7 64 bit1 下载文件1.1 libcurl下载页面http://curl.haxx.se/download.h...
分类:
编程语言 时间:
2014-11-18 10:16:06
阅读次数:
270
Java异常处理错误
发现错误的最佳时期是在编译阶段,也就是在你运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行阶段解决。这就需要错误源通过某种方式把适当的信息传给某个接收者,该接收者知道如何处理这个问题。
Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型,可靠的程序的生成,并且通过这种方式可以使你更加自信:你的应用中没有...
分类:
编程语言 时间:
2014-11-17 22:49:08
阅读次数:
202
本文转载自:http://www.cnblogs.com/gaolonglong/archive/2011/05/31/2064790.html1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就....
分类:
数据库 时间:
2014-11-15 14:05:16
阅读次数:
286
重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。
在并发程序中,程序员会特别关注不同进程或线程之间的数据同步,特别是多个线程同时修改同一变量时,必须采取可靠的同步或其它措施保障数据被正确地修改,这里的一条重要原则是:不要假设指令执行的顺序,你无法预知不同线程之间的指令会以何种顺序执...
分类:
编程语言 时间:
2014-11-10 13:51:06
阅读次数:
264