随笔分类 -  Language::C/C++

C/C++语言学习。
摘要:代码坏味道:是指在代码之中潜在问题的警示信号。并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。1.重复的代码如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。同一个class内的两个函数中含有重复的代码段两个兄弟class的成员函数中含有重复的代码段两个毫不相关的class内出现重复的代码段注意:重复的代码是多数潜在BUG的温床!2.过长的函数拥有短函数的对象会活的比较好、比较长。程序愈长就愈难理解函数过长阅读起来也不方便小函数的价值:解释能力、共享能力、选择能力原则:每当感觉需要以注释来说明点什么的时候 阅读全文
posted @ 2012-04-24 01:28 david++ 阅读(8148) 评论(5) 推荐(5)
摘要:Prototype模式去掉Clone方法意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。结构图:Prototype的主要缺陷是每一个Prototype的子类都必须实现Clone操作,这很烦。一般都这样实现:Prototype* ConcretePrototype::Clone(){return new ConcretePrototype(*this);}现在想去掉这个重复的操作,结构图如下:实现如下:class PrototypeWrapper{public:~PrototypeWrapper() {}virtual Prototype* clone() = 0;};te 阅读全文
posted @ 2009-10-12 22:02 david++ 阅读(514) 评论(0) 推荐(0)
摘要:编译时断言和运行时断言通常为了检测一些条件,我们往往在程序里面加断言。一般只在DEBUG版有效,RELEASE版断言不生成任何代码。C++可以使用两种断言: 静态断言和动态断言,即就是运行期断言和编译期断言!顾名思义,运行期断言是在程序运行过程中判断指定的条件,若条件满足,万事OK,若断言失败,则程序给出提示然后被abort掉;编译期断言是在编译时候检查条件是否满足,不满足情况下,编译器给出错误提示(需要人为实现),只要条件不成立,程序是编译不过的。静态断言,BOOST库有实现(boost/static_assert.hpp),主要原理就是根据"sizeof(不完整类型)" 阅读全文
posted @ 2009-08-26 18:15 david++ 阅读(2526) 评论(0) 推荐(0)
摘要:C++各大有名库的介绍之C++标准库 标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。1、Dinkumware C++ Library参考站点:http://www.dinkumware.com/P.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其C/C++的产品中采用Dink 阅读全文
posted @ 2008-12-02 20:00 david++ 阅读(442) 评论(0) 推荐(0)
摘要:◎用法:func( Type para1, Type para2, Type para3, ... ){ /****** Step 1 ******/ va_list ap; va_start( ap, para3 ); //一定要“...”之前的那个参数 /****** Step 2 ******/ //此时ap指向第一个可变参数 //调用va_arg取得里面的值 Type xx = va_arg( ap, Type ); //Type一定要相同,如: //char *p = va_arg( ap, char *); //int i = va_arg( ap, int ); //如果有多个参 阅读全文
posted @ 2008-11-19 23:05 david++ 阅读(1006) 评论(0) 推荐(0)