![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 74
fenma3422
这个作者很懒,什么都没留下…
展开
-
代码坏味与应对方案
代码的坏味道一般重构方法使用模式重构重复代码提炼方法提取类方法上移替换算法链构造方法构造Template Method以Composite取代一/多之分引入Null Object用Adapter统一接口用Fatory Method引入多态创建过长方法提取方法组合方法以查询取代临时变量引入参数对象保持对象完整转载 2013-04-09 09:37:42 · 411 阅读 · 0 评论 -
VS2010 检查内存泄露的方法
//第一种 1. 在APP开头处包含以下代码 #define CRTDBG_MAP_ALLOC #include #include 2. 在APP初始化的函数中加入 _CrtDumpMemoryLeaks(); 3. Output中将会跟踪所有内存创建和销毁的过程,这些信息可以忽略。4. 程序退转载 2013-04-27 16:12:46 · 922 阅读 · 0 评论 -
C++委托简介
委托就是把具体事情让别人做,我只调用你的函数。下面是一个例子:class RealSort{public:void sort();};class MySort{private:RealSort rs;public:SetName(RealSort rs){ this->rs = rs;}void sort()转载 2013-04-15 14:42:11 · 433 阅读 · 0 评论 -
深入理解C++中的mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 他只能用于类的非静态和非常量数据成员 我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对转载 2013-04-15 14:29:45 · 408 阅读 · 0 评论 -
特化和偏特化
Partial Template Specialization能够让你在模板(Template)的所有可能的实体中特化出一组子集. 1.模板的特化(template specialization): 例如,定义如下的一个模板: template class Widget { ... 泛化实现代码 ... };转载 2013-04-15 14:13:39 · 584 阅读 · 0 评论 -
TinyXML:一个优秀的C++ XML解析器
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即转载 2013-04-15 11:17:00 · 396 阅读 · 0 评论 -
前置++为什么比后置++效率高
前置++:type operator++(); 后置++:const type operator++(int ); 为了编译器区分前置和后置++,C++规定后缀形式有一个int类型参数 ,当函数被调用时,编译器传递一个0做为int参数的值给该函数。不这样规定,无法区分,因为都仅以自身对象为入参。 下面是一个简单的例子:转载 2013-04-15 15:02:40 · 520 阅读 · 0 评论 -
内存对齐问题
首先由一个程序引入话题: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 //环境:vc6 + windows sp2 2 //程序1 3 #include iostream> 4 5 using nam转载 2013-04-15 14:55:31 · 393 阅读 · 0 评论 -
软件设计的臭味
最近几天在看《敏捷设计实践》这本书,里面总结了在软件设计中常见的设计臭味,结合自己的工作经验来看,身同感受。1、僵化性 僵化性是指难以对软件进行改动,即使是简单的改动。如果单一的改动会导致有依赖关系的模块中的连锁改动,那么设计就是僵化的。必须要改动的模块越多,设计就越僵化。2、脆弱性 脆弱性是指,在进行一个改动时,程序的许多地方就可能出现问题。常常是,出现新问题的地方转载 2013-04-10 16:02:42 · 664 阅读 · 0 评论 -
OO设计模式和设计原则
1.1 设计正在“腐烂”的征兆(Symptoms of Rotting Design) 有四个主要的征兆告诉我们该软件设计正在“腐烂”中。它们并不是互相独立的,而是互相关联,它们是过于僵硬、过于脆弱、不可重用性和粘滞性过高。 1. 过于僵硬Rigidity Rigidity 致使软件难以更改,每一个改动都会造成一连串的互相依靠的模块的改动,项目经理不敢改动,因为他永远也转载 2013-04-10 16:14:08 · 439 阅读 · 0 评论 -
软件体系结构的重构——定义
以前做过一个产品,共分为三层:平台层,应用服务器层,应用层。其中有一个业务流程,实现是在应用层,但它那里的信息不全,需要通过应用服务器层向平台层获取必要的业务数据,然后通过应用服务器层控制业务流程。当时考虑这个结构的时候,主要的出发点就是业务和控制分离,将业务处理从平台层剥离开来。当时,在具体是实施过程中,我们工程师对这种结构抵触心理很强烈。他认为我们的业务开发非常的繁琐,而且经常要贴“狗皮膏药”转载 2013-04-09 11:12:10 · 895 阅读 · 0 评论 -
重构——构筑测试体系
1 构筑测试体系如果你想进行重构,首要前提就是要拥有一个可靠的测试环境。“编写优良的测试程序,可以极大的提高我的编程速度,即使不进行重构也是如此。”1.1 自我测试代码(Self-testing Code )的价值“Class 应该包含他们自己的测试代码。”“每个Class 都有一个测试函数,并用它测试自己这个 Class 。”确保所有的测试都完转载 2013-04-09 15:52:21 · 358 阅读 · 0 评论 -
什么是数据驱动编程
前言:最近在学习《Unix编程艺术》。以前粗略的翻过,以为是介绍unix工具的。现在认真的看了下,原来是介绍设计原则的。它的核心就是第一章介绍的unix的哲学以及17个设计原则,而后面的内容就是围绕它来展开的。以前说过,要学习适合自己的资料,而判断是否适合的一个方法就是看你是否能够读得下去。我对这本书有一种相见恨晚的感觉。推荐有4~6年工作经验的朋友可以读一下。正题:作者在转载 2013-04-09 15:36:05 · 445 阅读 · 0 评论 -
代码的坏味道
代码坏味道:是指在代码之中潜在问题的警示信号。并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。1. 重复的代码如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。同一个class内的两个函数中含有重复的代码段两个兄弟class的成员函数中含有重复的代码段两个毫不相关的cl转载 2013-04-09 10:24:18 · 456 阅读 · 0 评论 -
内存泄漏的检测、定位和解决经验总结
内存泄漏的检测、定位和解决经验总结温辉敏(wenhm@sina.com)2006年05月【摘要】结合局端MCU项目中CSS、NMS模块内存泄漏检测、修正的过程,简要介绍了内存泄漏检测的工具,提出了内存泄漏检测的一些方法(怎样对程序结构进行改造,怎样对程序进行隔离以易于进行内存泄漏检测)。总结了内存泄漏检测过程中成功和失败的体会,希望能对后来者有所启发。【关键词】内存泄漏转载 2013-04-27 16:43:11 · 1347 阅读 · 1 评论