最近看了boost::any类源码,其实现主要依赖typeid操作符。很好奇这样实现的时间和空间开销有多大,决定探一下究竟。VS2008附带的type_info类只有头文件,没有源文件,声明如下:[cpp]view plaincopyclasstype_info{public:virtual~typ... Read More
posted @ 2015-11-30 05:46 findumars Views(2560) Comments(0) Diggs(0)
dynamic_cast是一个操作符,其用法不再赘述。查看汇编码可以发现实际调用的是这个函数__RTDynamicCast,其内部实现如下:rtti.h:[cpp]view plaincopy#pragmaonceextern"C"{#include};typedefconsttype_infoTy... Read More
posted @ 2015-11-30 05:45 findumars Views(3738) Comments(0) Diggs(1)
下面这段代码会输出什么?[cpp]view plaincopyconstchar*p=string("hellotemprarystring").c_str();coutclassFoo{public:Foo(){_p=newchar[32];}~Foo(){delete_p;}private:ch... Read More
posted @ 2015-11-30 05:43 findumars Views(982) Comments(0) Diggs(0)
以下是一段简单的C代码,malloc和free到底做了什么?[cpp]view plaincopyintmain(){char*p=(char*)malloc(32);free(p);return0;}malloc和free的debug和release版本实现各不相同,而且相差很大。Debug版本m... Read More
posted @ 2015-11-30 05:31 findumars Views(1394) Comments(0) Diggs(0)
  //效果图:     //效果图: : Read More
posted @ 2015-11-29 08:25 findumars Views(1090) Comments(0) Diggs(0)