- 博客(7)
- 资源 (3)
- 收藏
- 关注
原创 c++中的智能指针实现
<br />今天和同事讨论了一下c++中的智能指针如何实现,后来又研究了一个boost::shared_ptr的代码,终于有了点眉目。<br /> <br />智能指针类,其实主要有两个参数,一个是所维护的指针,一个是引用计数,请注意,这个引用计数是一个指针,这个指针对外不可见,由智能指针类所维护。<br /> <br />智能指针类被赋值给别的变量时,这个引用计数会加1,当智能指针类被销毁时,这个引用计数会减1,当减到0时,这个智能指针所维护的指针变量会被销毁。是不是很简单?<br /> <br />但这
2011-03-25 17:56:00 1576
原创 boost::bind的使用
<br />最近在几经波折之后,终于对于boost::bind有点理解了。对于习惯了其他语言的人来说,boost::bind是个挺神奇的东西,它可以将你的方法适配成任何其他的方法。其实这得益于c++的模板以及操作符重载,去看boost::bind的实现就会发现它是一个有n多重载的函数,这些重载主要是为了适应函数的参数个数。<br /> <br />其实boost::bind的原理是函数对象,而函数对象就是一个重载了()操作符的对象,这样我们就可以像调用一个方法一样来调用一个类上的这个操作符,比如a(),其实
2011-03-25 17:51:00 34540 7
原创 flash中的string
<br />由于需要,要使用alchemy来写一个flash端的校验,要对一个二进制序列进行hash然后再返回一个二进度序列。一开始为了图省事,直接使用了flash提供的string来完成,结果发现string遇到/0时再往后的数据就不是你所期待的了。当时为了这个问题折腾了很久,主要原因是执行结果时对时不对,在追查问题时,最怕的就是这类问题。没办法了,将二进制数据打印出来,一个个对,结果发现我的hash结果在不对的时候总是前面是对的,到某个点的时候就不对了。于是想到可能是啥东西给截断了,唯一的可能性就是/0
2011-03-25 17:32:00 1788
原创 新项目,新架构
<br />新项目需要一个长连接架构的实现,而长连接对于性能的要求决定了用c或者c++来写比较靠谱,但是公司的技术人员组成决定了不可能用c或者c++来写业务逻辑,而且这个也不现实,会使得开发周期和维护成本很高。于是决定采用boost/asio + fastcgi + php来实现,也即前端有一个保持长连接的服务器,当前端将请求发上来之后,长连接服务器通过fastcgi协议将请求发给php,由php处理完成后再返回给长连接服务器,由长连接服务器返回给用户。<br /> <br />有人可能会说,这跟web服务
2011-03-25 17:25:00 1152
原创 类型转换带来的问题
<br />请看下面这段代码<br />#include <iostream>#include <boost/shared_ptr.hpp>#include <boost/asio/streambuf.hpp>#include <boost/cstdint.hpp>int main(){ boost::uint32_t intelligence = 57; boost::uint32_t base_damage = 24; boost::uint32_t random_d
2011-03-14 12:09:00 1241
原创 利用amfext和actionscript进行通信
<br />事实上amfext主要提供了两个函数,一个是amf_encode,一个是amf_decode,而ByteArray中提供的IDataOutput和IDataInput提供的readObject和writeObject是AMF编码的。而amfext的编码在第一个byte指定了当前模块的类型,而ByteArray的实现并没有这个定义,因此需要将它给删除掉。所以ActionScript里需要var bytes:ByteArray = new ByteArray(); bytes.objectE
2011-03-07 18:10:00 1685
原创 重装操作系统之后原来vmware的恢复
<br />今天重装了系统,于是原来的vmware不能用了,原因是原来的那个系统是处于susppend状态的,于是相关信息就没有了。怎么办呢?修改vmx文件,然后让系统可以启动,接下来就简单了。
2011-03-05 13:50:00 4842
Computer Science Handbook第二版.下
2010-02-03
Computer Science Handbook第二版.上
2010-02-03
Handbook of Data Structures and Applications
2009-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人