hATEmATH的网上田园

喂马 劈柴 做一个幸福的人
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
公告
  • ◇ 欢迎来到这里的每一位朋友。

    ◇ 无需注册即可评论或留言。

    ◇ 文章无"转载(ZT)"字样均为原创。

    ◇ "随笔分类"中包含我的所有随笔

留言簿(13)

随笔分类

随笔档案

文章分类

文章档案

相册

工具网站

搜索

最新评论

阅读排行榜

评论排行榜

 
VC知识库BLOG   首页  新随笔  联系  聚合  登录 
  随笔-125 文章-20 评论-449 Trackbacks-0


是摘录,所以只是自己感兴趣的部分,一般是自己不熟悉的地方和觉得讲述的很好的地方。

第六章  函数设计

> 如果函数没有参数,则用void 填充.明确的告诉别人,此函数没有参数。

> 有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。
例如字符串拷贝函数strcpy 的原型:
char *strcpy(char *strDest,const char *strSrc);


> 断言用来捕捉程序员认为不应该发生的情况
在编写函数时,先自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。

> int m;
int & n = m;
n 相当于m 的别名(绰号),对n 的任何操作就是对m 的操作。例如有人名叫王小毛,
他的绰号是“三毛”。说“三毛”怎么怎么的,其实就是对王小毛说三道四。

引用和指针的区别:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。


> 实际上“引用”可以做的任何事情“指针”也都能够做,为什么还要“引用”这东西?
答案是“用适当的工具做恰如其分的工作”。
指针能够毫无约束地操作内存中的如何东西,尽管指针功能强大,但是非常危险。如果只需要借用一下某个对象的“别名”,那么就用“引用”,而不要用“指针”,以免发生意外。比如说,某人需要一份证明,本来在文件上盖上公章的印子就行了,如果把取公章的钥匙交给他,那么他就获得了不该有的权利,从而产生潜在的危险。




第7 章 内存管理

> C++/C 语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。

> 当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针

> 如果函数的参数是一个指针,不要指望用该指针去申请动态内存。因为编译器总是要为函数的每个参数制作临时副本,指针亦同。

>


第9 章 类的构造函数、析构函数与赋值函数


> 构造函数有个特殊的初始化方式叫“初始化表达式表”(简称初始化表)。初始化表
位于函数参数表之后,却在函数体 {} 之前。这说明该表里的初始化工作发生在函数体
内的任何代码被执行之前。

> 如果类存在继承关系,派生类必须在其初始化表里调用基类的构造函数。

> 类的const 常量只能在初始化表里被初始化,因为它不能在函数体内用赋值的方式
来初始化

> 构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成
员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编
译器将无法自动执行析构过程。

> 一个有趣的现象是,成员对象初始化的次序完全不受它们在初始化表中次序的影响,
只由成员对象在类中声明的次序决定。这是因为类的声明是唯一的,而类的构造函数可
以有多个,因此会有多个不同次序的初始化表。如果成员对象按照初始化表的次序进行
构造,这将导致析构函数无法得到唯一的逆序。


> 注意不要将检查自赋值的if 语句
if(this == &other)
错写成为
if( *this == other)

> 如果我们实在不想编写拷贝构造函数和赋值函数,又不允许别人使用编译器生成的
缺省函数,怎么办?偷懒的办法是:只需将拷贝构造函数和赋值函数声明为私有函数,不用编写代码。


<边看边补充>

posted on 2008-07-29 17:32 hATEmATH的网上田园 阅读(1105) 评论(5)  编辑 收藏
Comments
  • # re: 《高质量C++编程指南》 摘录
    gaoqing000
    Posted @ 2008-07-30 15:23
    哈哈
  • # re: 《高质量C++编程指南》 摘录
    Diviner
    Posted @ 2008-07-31 09:12
    这本书写得还是马马虎虎的,比较实在。比那些什么陷阱和优化的书有用不少。
  • # re: 《高质量C++编程指南》 摘录
    小明
    Posted @ 2008-08-04 10:30
    我倒是觉得这本书没什么东西

    看起来都是常识
  • # re: 《高质量C++编程指南》 摘录
    Diviner
    Posted @ 2008-08-04 18:15
    对初学者来说还是不错的。
    那些什么沉思路很容易走歪路。
  • # re: 《高质量C++编程指南》 摘录
    zdd
    Posted @ 2008-08-07 11:52
    对,这本书很实用的说
标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]