摘要: 原帖地址:http://www.codeproject.com/KB/cpp/superfactory.aspx 概述 对象工厂的实现非常多,你可能会奇怪到底什么是“超级工厂”。简单的说,这个工厂可以创建任何类型的对象。 这确实是一个有用的特性,特别是对于持久化框架(“persistence frameworks”)。常规的对象工厂实现需要用户为对象创建派生结构,或者,对于异种对象(没有派生... 阅读全文
posted @ 2011-10-10 18:29 沈星星 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 原帖地址:http://www.codeproject.com/KB/cpp/superfactory.aspx 概述 对象工厂的实现非常多,你可能会奇怪到底什么是“超级工厂”。简单的说,这个工厂可以创建任何类型的对象。 这确实是一个有用的特性,特别是对于持久化框架(“persistence frameworks”)。常规的对象工厂实现需要用户为对象创建派生结构,或者,对于异种对... 阅读全文
posted @ 2011-10-08 18:41 沈星星 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 原文及源码下载地址:http://www.codeproject.com/KB/applications/visualleakdetector.aspx名词解释:1、stack trace:调用堆栈信息2、debug heap:调试堆3、Allocation Hook:向调试堆注册的回调函数,当申请内存时,调试堆即调用此回调函数前言VC++提供内建的内存泄漏检测,但是其功能简陋。本文介绍的工具Visual Leak Detector(以下称VLD)它提被用于替代vc++内建的检测工具,供一些特性:1、对每个泄漏内存块提供stack trace,包括源码文件名及行数信息。2、提供泄漏内存块的完全 阅读全文
posted @ 2011-10-07 13:47 沈星星 阅读(2120) 评论(0) 推荐(0) 编辑
摘要: 原帖与示例代码地址:http://www.codeproject.com/KB/cpp/MemoryPool.aspx译者点评:一个简单的内存池实现,附有源码,简单易懂,适合入门。概述在c/c++中,内存分配(如malloc或new)会使用很多时间。一个程序会随着长时间的运行和内存的申请释放而变得越来越慢,内存也会随着时间逐渐碎片化。特别是高频率的进行小内存申请释放,此问题变得尤其严重。解决方案:定制内存池为解决上述问题,一个(可能的)的解决方案就是使用内存池。“内存池”在初始化时,分配一个大块内存(称 原始内存块),并且将此内存分割为一些小的内存块。当你需要请求分配内存时,则从内存池中取出事 阅读全文
posted @ 2011-10-05 16:30 沈星星 阅读(1644) 评论(0) 推荐(0) 编辑
摘要: 最近在看google talk的libjingle模块,里面大量使用了signal/slot机制,下面就这个机制说明下自己的理解。 所谓signal,即信号; 所谓slot,即信号触发后所要处理的事情(所要调用的函数)。 之所以称其为slot(槽),我这么理解:当一个signal被触发后,有可能处理多个事件(函数),将signal想象为一张表(信号-处理函数),那么每个处理函数便是表中... 阅读全文
posted @ 2011-09-30 17:16 沈星星 阅读(1921) 评论(0) 推荐(2) 编辑