自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 Effective C++之十二

核心思想:Copy构造和赋值操作中,复制对象的所有部分。设计良好的类封装了内部状态,只有两个复制函数:Copy构造函数和赋值操作函数。条款5中谈了编译器合成的复制函数。当类中声明了Copy构造函数和赋值操作函数,即使有明显逻辑错误,编译器也不会报错。Mayers举了Customer类的例子:如果类中增加了新的成员变量,而没有更新相关复制函数,复制函数只复制对象的部分。有继承时问题更隐蔽

2008-11-24 07:08:00 226

原创 社交网站

        自博客、微博客之后,社交网站成为新的流行,据说Facebook帮奥巴马成功笼络了250万网民。现在社交网站又向垂直领域发展,小鸡射手下载了倾向于教育领域的开源系统Elgg,学习学习,:-)        也许是文化背景的因素,国人还是喜欢国内的品牌。国内有以大学生为主体的校内网,以休闲为主的开心网,以交友分享为主的51网,和依托生活服务平台的雅虎关系等等。        平

2008-11-23 09:48:00 272

原创 Effective C++之十一

2008-11-22 19:01:00 200

原创 Effective C++之十

     要点: 赋值操作返回*this的引用。     其作用是支持连续赋值,例如:x = y = z = 15;     这只是一种惯用法(convention),如果不这么写编译还是能通过的。     最后,除了标准赋值操作外,其他赋值操作(+=、*=等等)均适用。 

2008-11-22 18:53:00 205

原创 Effective C++之九

     要点:不要在构造/析构函数中调用虚函数。     原因是:     1) 子类构造函数首先调用基类构造函数,故在运行基类构造函数时,子类成员变量尚未初始化     2) 更重要的是,在调用基类构造函数时,对象的类型是基类类型。不但虚函数认为(resolve to)基类函数,运行时类型(Runtime Type Information)也认为是基类。     析构函数也是同

2008-11-22 16:16:00 195

原创 Effective C++之八

    要点:不要在析构函数中抛出异常。    Mayers举了一个Widgets vector例子:如果第一个元素的析构函数中抛出了异常,为了避免资源泄漏等问题,其他元素也需要析构,假设第二个元素的析构函数又抛出一个异常。C++无法同时处理两个异常,将导致未知行为甚至程序终止。    补充一个例子:函数执行中抛出异常,退出该函数前将析构所有局部对象。如果在析构局部对象时又抛出异常,也将面

2008-11-22 15:56:00 213

原创 Effective C++之七

2008-11-22 13:56:00 192

原创 Effective C++之六

     要点:显示禁止不想使用的编译器合成函数。     条款5中叙述了编译器可能合成四类函数。在某些情况下,如作者例子中“要出售房屋”实例,不希望有Copy构造和赋值操作。补充例子:Singleton模式。     有两种做法:     1) 将Copy构造和赋值操作声明为private,不提供函数实现。         1.1 声明Copy构造和赋值操作后,编译器不会再合成

2008-11-22 13:27:00 221

原创 Effective C++之五

    重点:了解C++自动合成和调用的缺省构造、Copy构造、赋值和析构函数。     即使你定义了一个空类,C++编译器也会为你生成上述函数。准确地说,是在需要的时候生成。见而言之,它们做以下工作:    - 缺省构造和析构,调用基类和成员对象的缺省构造和析构函数    - copy构造和赋值操作,简单地复制每一个成员对象的值。对于基本类型,就是bitwise复制。  

2008-11-15 12:51:00 237

原创 Effective C++之四

    核心思想:对象使用前必须初始化。    C++对象初始化没有简明的规则。大致而已,出于效率考虑,C++的C部分(参见条款1)不保证进行初始化,而非C的部分能保证初始化。读取未初始化的随机值,将导致未定义的行为,包括程序异常退出。        最好的做法是:在使用前永远进行初始化,对内置数据类型进行手工初始化。    对于对象而已,初始化的职责落在构造函数上。成员变量初始化

2008-11-15 11:30:00 261

原创 编码的三个要求

    也许是受了《重构》的影响,我对年轻同事编码提的三个要求是:    1. 给函数、变量取一个恰如其分的名字    2. 写短的函数    3. 不要重复。   易懂却不易做。

2008-11-15 11:21:00 404

原创 历史与现状

       Martin Fowler在其《企业架构模式》中推荐了Craig Larman的《UML和模式应用》。此书已经是第三版了,从网下载了一本英文电子版,阅读速度实在太慢,于是到chinapub定了一本中文版。值得一提,也许是电子商务有了进一步发展,无论是chinapub,新蛋或是京东,送货的速度明显比以前快了。     谈到迭代开发方法的历史,Larman是这样叙述的:20世纪50年

2008-11-06 21:15:00 236

原创 w3school导读

     弟弟,给了w3school的网址,再为你写一份入门导读。Effective C++等你放假再看,先阅读C++ Primer,:-)     建议以下顺序学习:     1. HTML        这是静态网页的最基础表示方法。网页是一种叫标记(tag)的树型结构。例如:        - 根标记为        - 显示图片用        - 显示可以点击的链

2008-11-02 11:41:00 344

原创 Effective C++之三

     主题:尽可能使用const。     const运用范围很广:全局常量、类内常量、静态常量、输入参数常量、返回值常量、函数常量。声明为常量后,编译器会检查其常量性。对指针,const可用于说明指针本身、指针指向内容、两者都是常量。对指针指向内容的cosnt,C++语法支持两种语法(参见Widget例子);我个人习惯于写在左边,但是考虑到写template时的一致性,《C++ Temp

2008-11-02 10:31:00 418

原创 Effective C++之二

     第二条的内容记忆得就不如第一条丰富了,:-)     核心思想:不要使用#define!     一般的,#define有两个用途:1. 定义常量,2.定义常用操作,例如max(a,b)。   #define用途一的替代方案是:const变量。好处一是:宏定义是预编译处理的,只是做简单的文本替换,宏定义token不在编译符号表支持,而const能在编译期检查类型。好处二是,C

2008-11-02 10:05:00 318

原创 Effective C++ 之一

2008-11-02 09:23:00 371 1

原创 Pclint统计小工具

    Pclint是一个很不错的C/C++静态分析工具。    用Ruby写了一个统计小工具,统计每个子目录、文件中错误/告警数,各类错误/告警总数。    功能还比较单纯,期望未来能记录数据库,并结合PSP概念,成为更有效的工具。    没有找到上传文件的地方,可留下email。

2008-11-02 09:03:00 570 1

Cloud Application Architectures

Cloud Application Architectures

2010-01-15

Web 2.0 Architectures

About Web 2.0 model, architectures and patterns.

2010-01-15

The Art of Scalability

The Art of Scalability is by far the best book on scalability on the market today.

2010-01-15

Java Persistence with Hibernate

英文版。Hibernate in Action续篇,Hibernate官方网站推荐读物。http://blog.csdn.net/zlei12介绍了其ORM映射部分。

2007-02-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除