![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记(C++设计新思维)
文章平均质量分 65
hjing1988
这个作者很懒,什么都没留下…
展开
-
第四章(小型对象分配技术:smart-object allocation)
分配原理 block:最小单位,外部指定,一般每个block从4~64byte不等。我们称为blocksize chunk:包含多个block。个数我们称为blocknum。每个chunk大小为blocknum*blocksize。一般为固定,大小我们称为page fixedAllocator:包含多个chunk。里面的chunk的block大小都是固定的。即每个fixedAllocator原创 2015-06-22 21:46:50 · 767 阅读 · 0 评论 -
第六章(单件模式)
单件模式比较简单 最常用的写法,子类继承它既可。 template class CSingleton { public: static T& Instance() { if (!pInstance_) { pInstance_ = new T; } return *pInstance_; } private: static T* pIns原创 2015-06-29 22:13:36 · 328 阅读 · 0 评论 -
第五章(泛化仿函数)
该章节有点类似于实现了function和bind操作 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Fu原创 2015-06-29 22:07:09 · 679 阅读 · 0 评论 -
第三章(TypedefList>
typedeflist里面可以存放各种类型,是类型,不是值哦,值是通过下面Holder和CTypeListApply来实现的,代码充分利用了递归的方法 C++在编译器编程的工具:模板,整数计算,typedef template struct TypeList { typedef T Head; typedef U Tail; }; // 我们约定TypeList必须以N原创 2015-06-17 22:50:58 · 929 阅读 · 0 评论 -
第一章policy(特征,模板中的模板类)
1、如果需要写出一个smartptr供外部使用 template class CSmartPtr 外部可能需要支持单线程,或则多线程的(CThread,CSingleThread)。需要支持check指针为空或则设置默认值的(CNocheck,CEnfoceNotNull,CEnsureNotNull) 按照面向对象或则设计模式的解法为:线程是一个class,CSmartPtr继承自,也从原创 2015-06-14 15:56:29 · 498 阅读 · 0 评论 -
第七章(智能指针)
该例子中的智能指针与标准库及boost的类似,只是多了一些智能指针与原始指针的比较操作,转换操作也值得学习看一下 智能指针看得例子比较多了,下面例子中有部分写代码时觉得比较有意思的注释 smartptr.h #pragma once ////////////////////////////////////////////////////////////////////////// //#原创 2015-06-29 22:15:21 · 334 阅读 · 0 评论 -
第二章(技术)
1、编译器assert #pragma warning(disable:4101) ////////////////////////////////////////////////////////////////////////// ///使用数组,无法传入额外参数 #define STATIC_ASSERT1(express) {char unnamed[(express) ? 1 :原创 2015-06-14 18:45:50 · 367 阅读 · 0 评论 -
第八章(对象工厂)
我们一般使用工厂的方式如下 CMyFactory { CMyProduct* Create(int iProductID); } 实现如下: CMyProduct* Create(int iProductID) { switch(iProductID) { case 1: return new Product1; break; case 2: retur原创 2015-06-29 21:58:04 · 483 阅读 · 0 评论 -
书籍介绍
模板深入学习的好书 讲解很多c++组件的实现,并且一步一步教你如何实现 书中代码不全的,可以参考loki库文件。 看完此书会感觉C++模板原来可以如此强大。自己真的会C++吗? 需要有较好c++基础,对模板有一定基础。原创 2015-08-02 18:12:03 · 318 阅读 · 0 评论