摘要:auto_ptr是c++标准库中的一种严格所有权型的智能指针,实现在backward/auto_ptr.h文件中pro:1、做临时变量时,不需要手动去释放资源void f() { ClassA *p = new ClassA; ...... // 如果这抛出异常,还会有...
阅读全文
摘要:1、什么时候需要类?当我们需要对自己关注的单一概念(属性+操作)进行抽象。比如我们想把木头、锁、钉子聚合成一个新的单一概念,这样我们可以只关心新概念的操作(开、关),而不必再去关注原来子概念的操作(木头怎么运动、钉子怎么运动等等)。这时候我们就需要类。2、审慎添加新class如何被创建,被析构复制行...
阅读全文
摘要:1、异常安全 出异常后,不占有资源,也不破坏数据涉及资源型语句,最好单独写成一行。因为同一行语句,执行顺序是不确定。// 试想,如果执行顺序是 new A -> priority() -> shared_ptr// 如果priority()执行中出现异常,那么new A执行后的资源将无法释放dea...
阅读全文
摘要:1、用对象去管理资源获得资源对象指针后,立即放入资源管理对象中std::auto_ptr pA(createA())2、考虑复制行为禁止复制设为深拷贝转移资源所有权3、自定义new/delete 主要目的可以是:强化效率额外工作,如统计、加签名等 主要注意问题是:每自定义一个new,都要对应自定...
阅读全文
摘要:总而言之,redis内存管理是采用主要由操作系统自主控制内存分配,辅之以简单封装,达到简单且稍微改良的性能。内存块,标记上本块size如上图所示,当调用zmalloc/zmalloc时,输入参数为size,实际分配了 size_t + size 的空间。前面size_t空间存放size数值,后面si...
阅读全文