- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 《Java 与模式》中的错误
最近在看阎宏博士的《Java 与模式》,总体感觉不错。书中用大量的例子来阐述23个设计模式,有些例子比如“责任链模式”一章中的“击鼓传花”非常精彩。但是书中的毛病很多,有许多段落重复出现,很多代码也有凑页数的嫌疑,更别提到处都有的错别字了。由此可见电子工业出版社的编辑团队素质之差——活活把一本好书糟蹋了! 今天遇到的问题是“状态模式”一章中的“用户登录子系统”一节,里面的例子看了
2007-10-09 17:45:00
455
1
原创 Can not open file with "ios_base::in | ios_base::app"
GCC 4.1.2 不支持用 ios_base::in | ios_base::app 模式打开文件。可以使用的替代方案是:fstream fs("test.txt");fs.seekp(0, ios::end);详细讨论请见:Can not open file with "ios_base::in | ios_base::app"Google 网上论坛: comp.lang.c++
2007-10-09 11:23:00
815
原创 More Effective C++读书笔记
条款1:指针与引用的区别二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变。在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象。在以下情况使用引用:总是指向一个对象且一旦指向一个对象之后就不会改变指向;重载某个操作符时,使用指针会造成语义误解。
2006-10-05 09:33:00
855
原创 Effective C++读书笔记
条款1:尽量用const和inline而不用#define1.为方便调试,最好使用常量。注意:常量定义一般放在头文件中,可将指针和指针所指的类型都定义成const,如const char * const authorName = “Scott Meyers”;类中常量通常定义为静态成员, 而且需要先声明后定义。可以在声明时或定义时赋值,也可使用借用enum的方法。如enum{Num = 5};2.
2006-10-05 09:32:00
915
转载 C++运算符重载转换运算符
为什么需要转换运算符? 大家知道对于内置类型的数据我们可以通过强制转换符的使用来转换数据,例如(int)2.1f;自定义类也是类型,那么自定义类的对象在很多情况下也需要支持此操作,C++提供了转换运算符重载函数,它使得自定义类对象的强转换成为可能。 转换运算符的生命方式比较特别,方法如下: operator 类名(); 转换运算符的重载函数是没有返回类型的,它和类的构造函数,
2006-09-14 19:57:00
1017
转载 跟我一起写 Makefile
概述——什 么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写ma
2006-09-08 23:29:00
657
转载 typedef用法小结
这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下:来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef
2006-09-08 23:24:00
699
转载 成员变量/函数指针的用法
标准C++并没有真正的面向对象的函数指针。这是很遗憾的,因为面向对象的函数指针(有时也称为委 托)已经在其他语言中被证明了它的价值。在Delphi(面向对象的Pascal语言)中,面向对象的函数指针是Borland公司构建VCL(可视化组 件库)的基础。最近,C#为了显示其语言本身的成功,也在力推委托(delegate)的概念。对于很多应用程序来说,委托简化了一些使用松耦合对象构建 的设计模式
2006-09-06 22:13:00
1886
转载 C# 编码规范和编程好习惯
谁都会写代码!几个月的编程经验可以让你写出“可运行应用程序”。让它可运行容易,但是以最有效率的方式编码就需要下更多的功夫!要知道,大多数程序员在写”可运行代码,“而不是”高效代码“。我们在这个指南课程前面提到,你想成为你们公司”最尊贵的专业人员“吗?写”高效代码“是一项艺术,你必须学习和实践它。命名惯例和规范注记 : Pascal 大小写形式-所有单词第一个字母大写,其他字母小写。Ca
2006-09-05 15:11:00
666
转载 C++ STL轻松导学
1 初识STL:解答一些疑问1.1 一个最关心的问题:什么是STL1.2 追根溯源:STL的历史1.3 千丝万缕的联系1.3.1 STL和C++1.3.2 STL和C++标准函数库1.3.3 STL和GP,GP和OOP1.4 STL的不同实现版本1.4.1 HP STL1.4.2 P.J. Plauger STLhttp://www.dinkumware.com。据称Visual Studio.N
2006-09-03 19:52:00
931
转载 static_cast揭密
本文讨论static_cast。介绍大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写C++(程序)时,有时候我 们在使用static_cast时可能会有点模糊。在本文中,我将说明 static_cast泛型(Generic Types) float f = 12.3; float* pf = &f; // static cast
2006-09-03 19:29:00
1514
转载 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(
2006-09-03 19:22:00
1509
转载 linux下配置cvs服务器
一 CVS服务器的安装: 1。查看你的操作系统上是否安装了CVS:#> rpm -qa|grep cvs 如果没有安装你可以在Redhat 第2张光盘上找到,另外你也可以在网上下载到最新的rpm包。很容易找,其实不存在什么linux版本。 2。建立cvs用户组: #> groupadd cvs 3。建立cvs组的cvsroot用户和所属的目录: #> useradd -g cv
2006-09-03 17:37:00
655
XML实用大全电子版
2008-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人