为什么要说“也”?用google搜索“析构函数”是,google会说“约有81,500项符合 析构函数 的查询结果”,我最近复习c++是有所心得,所以“也”想谈谈“析构函数”。我不想像教科书似的介绍它,而是从它何时被调用来浅谈一下。析构函数在下边3种情况时被调用:1.对象生命周期结束,被销毁时;2.delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是虚函数时;3.对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。情况1请看下边代码:#includeclass A{public:A(){coutclass A{public:A(){coutc Read More
posted @ 2013-11-26 15:25 Duerbin Views(196) Comments(0) Diggs(0)
创建堆栈框架总体看来,构建一个堆栈框架包含了以下几个步骤:如果要调用的函数有参数,将参数压入堆栈;用call指令调用子程序;此时子程序开始,将ebp寄存器压入栈:push ebp;将ebp的值设为esp(只是为了方便以后访问参数和局部变量):mov ebp, esp;若有局部变量,将esp的值减去相应的值。假设我们有3个DWORD类型的局部变量,则:sub esp, 12;若有需要保存的寄存器,将要保存的寄存器压栈。完成上述各个步骤后,堆栈的情况如下图:访问堆栈参数从上图可以看出来,若要访问第一个被压入的参数,假设将第一个参数的值放到eax中,我们可以使用:[plain]view plainc Read More
posted @ 2013-11-25 10:39 Duerbin Views(1180) Comments(0) Diggs(1)
Xshell是Windows平台下的一款ssh客户端程序,支持标签卡方式打开会话。打开多个会话后,打开"View"菜单,选中"Compose Bar",在Xshell底端会出现一个输入框,点击输入框旁边的按钮,选择"To All Sessions",就可以对所有打开的会话执行相同的操作了此办法的缺点的是在输入框里是没办法用命令tab补全的,还有用vim编辑的时候不方便。复制和粘贴由于在linux的Shell下,Ctrl+c是中断当前指令,这个快捷键和windows下的复制快捷键冲突,所以经常犯错误,想复制的时候按了ctrl+c,结果中 Read More
posted @ 2013-11-19 17:33 Duerbin Views(1491) Comments(0) Diggs(0)
查看一些开源代码经常被一些函数的调用关系给绕进去,经过网上查阅资料,发现了这个好用的方法,拿出来和大家分享下安装和应用的过程。本人常用windows系统,所以主要讲解下windows下相关的内容要使用doxygen生成漂亮的调用关系图,那就必须安装下图形生成工具graphviz软件,要通过html生成chm文档,那就要用htmlhelp软件了,我想已经说明了三者的关系了,哦,至于doxygen做什么,生成html文档或其他格式的文档软件撒首先下载三个软件,均下载windows下的安装包,地址如下:doxygen:http://sourceforge.net/projects/doxygen/我 Read More
posted @ 2013-09-17 15:50 Duerbin Views(678) Comments(0) Diggs(0)
.Log4j的优点 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送地;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 log4j的好处在于: (1)通过修改配置文件,就可以决定log信息的目的地——控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等。 (2) 通过修改配置文件,可以定义每一条日志信息的级别,从而控制是否输出。在系统开发阶段可以打印详细的log... Read More
posted @ 2013-08-05 16:14 Duerbin Views(322) Comments(0) Diggs(0)
tpftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输。FTP 协议允许数据在不同文件系统的主机之间传输。尽管这个协议在传输数据上提供了高适应性,但是它并没有尝试去保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数)。而且 FTP 协议很少对一个文件系统的整体结构作假定,也不提供这样的功能,比如递归的拷贝子目录。在使用 ftp 命令时,需要注意 FTP 协议的这些特性。当需要保留文件属性或者需要递归的拷贝子目录时,可以使用 rcp/scp 等命令。基本语法ftp 命令的一般格式如下: Read More
posted @ 2013-06-21 16:07 Duerbin Views(1232) Comments(0) Diggs(0)
JS完美识别IE, firefox, chrome, safari浏览器判断是否为IE浏览器很简单,用navigator.appName来判断就行了。而Firefox,Chrome,Safari的navigator.appName输出值都是"Netscape",现在我们用navigator.userAgent这个属性来判断,因为谷歌浏览器Chrome的navigator.userAgent值包含“Safari”字符串而Safari浏览器并不包含Chrome,因此我们可以用这个区别来区分safari和chrome。完整代码如下:<!DOCTYPEhtmlPUBLIC&q Read More
posted @ 2013-06-14 17:05 Duerbin Views(384) Comments(0) Diggs(0)
你是怎么调试 JavaScript 程序的?最原始的方法是用 alert() 在页面上打印内容,稍微改进一点的方法是用 console.log() 在 JavaScript 控制台上输出内容。嗯~,用这两种土办法确实解决了很多小型 JavaScript 脚本的调试问题。不过放着 Chrome 中功能越发强大的开发者工具不用实在太可惜了。本文主要介绍其中的 JavaScript断点设置和调试功能,也就是其中的 Sources Panel(以前叫 Scripts)。如果你精通 Eclipse 中的各种 Java 调试技巧,那么这里的概念都是类似。写作本文时使用的 Chrome 版本为 25.0.1 Read More
posted @ 2013-06-14 15:59 Duerbin Views(1358) Comments(0) Diggs(0)
require.js 入门学习 最近的项目用到了require.js ,搜集一些资源留个备份,顺便分享给大家。 以下内容转自阮一峰老师的网络日志:http://www.ruanyifeng.com/blog/2012/11/require_js.html 更多学习资源: require.js官网:http://requirejs.org/docs/download.html 一篇不错的文章:http://www.csdn.net/article/2012-09-27/2810404一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,... Read More
posted @ 2013-05-21 12:10 Duerbin Views(177) Comments(0) Diggs(0)
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。 (1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库.. Read More
posted @ 2013-05-07 17:10 Duerbin Views(551) Comments(0) Diggs(0)