- 博客(3)
- 收藏
- 关注
转载 C++程序的设计机制2:Pimpl机制
<br />1.简介<br />这个机制是Private Implementation的缩写,我们常常听到诸如“不要改动你的公有接口”这样的建议,所以我们一般都会修改私有接口,但是这会导致包含该头文件的所有源文件都要重新编译,这会是个麻烦事儿。Pimpl机制,顾名思义,将实现私有化,力图使得头文件对改变不透明。<br />2.机制分析<br />首先,我们先看看不使用这个机制的一个实现: 1: // MyBase.h 2: class MyBase { 3: public: 4: int
2011-06-01 23:58:00
991
转载 C++程序的设计机制1:NVI机制(Non-Virtual Interface )
<br />在C++的程序设计中有一些设计开发的典型机制需要整理讨论,在此抛砖引玉,为自己做积累,请高人也多多指教。<br />1.简介<br />在标准C++库中我们可以看到这样的一个现象:<br />6个公有虚函数,并且都是std::exception::what()和其重载。<br />142个非公有虚函数。<br />这样设计的目的何在呢,为什么“多此一举”的把虚函数设置为非公有呢?<br />这就是NVI机制要求的:将虚函数声明为非公有,而将公有函数都声明为非虚——虚拟和公有选其一。<br />2
2011-05-27 00:20:00
829
原创 STL 删除容器中元素的几个特殊问题
<br /> 最近的项目中频繁的使用STL,在对容器做删除元素操作时,经常有人得到一些令人讶异的结果,应该还是对STL的原理不够理解,左右无事,就针对这个问题,稍稍探讨一番,也可令初学者少走弯路,牛人自动跳过~<br /> 总所周知,STL充分体现了将容器与算法分离,以获得强大的灵活性,这是它的优势所在,但同时也付出了相应的代价。<br /> 先来看看下面这段代码<br /> #include <iostream> #include <list> #include <algori
2011-05-21 21:23:00
475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人