程序设计教程--用c语言编程第三次印刷的勘误表(编辑修改稿)内容摘要:

所指向的对象的 成员时,“ this”可以省略, 编译程序在编译的时候 会自动加上它们。 但是,如果在成员函数中要 把 this 所指向的 对象 p206. 第 8 行 错: 构造函数( constructor)是指在对象类中定义或声明的与类同名、无返回值的成员函数。 在 对: 构造函数( constructor)是指在对象类中定义或声明的与类同名、无返回值 类型 的成员函数。 在 p206. 第 17 行 错: A a。 //创建对象 a,并调用 a的构造函数 A() 对: A a。 //创建对象 a:为 a分配内存空间,然后调用 类 A中的 构造函数 A()对 a进行初始化 p208. 倒数 第 2 行 错: 析构函数( destructor)是名为“ ~类名 ”的成员函数,它没有参数和返回值。 当对象消亡 对: 析构函数( destructor)是名为“ ~类名 ” 、没有参数和返回值类型的成员函数。 当对象消亡 p216. 倒数 第 19 行 错: { strcpy(p,abcd)。 //编译程序认为 OK *p = 39。 A39。 //编译程序认为 OK 对: { strcpy(p,abcd)。 //没有改变 p的值,因此 编译程序认为 OK *p = 39。 A39。 //同上 p218. 第 17- 18 行 错: 类中说明的静态数据成员,对于该类的所有对象只存在一个拷贝。 例如,对于下面的对象 a和 b: 对: 类中说明的静态数据成员,对于该类的所有对象只存在一个拷贝。 例如,对于下面的对象 a1和 a2: p219. 第 2 行 错: static int get_shared() const { return shared。 } 对: static int get_shared() { return shared。 } p219. 倒数 第 8 行 错: static int get_num_of_objects() const { return obj_count。 } 对: static int get_num_of_objects() { return obj_count。 } p226. 第 2 行 错: Set union(const Setamp。 s) const。 //计算集合的并集。 对: Set union2(const Setamp。 s) const。 //计算集合的并集。 p229. 第 1~ 3 行 错: 有些情况下,操作符的重载只能作为全局函数来重载。 ( 4) 可重载的操作符。 除了下面的 四 个操作符外,其它操作符都可以重载: “ .”,“ .*”,“ ::”,“ ?:” 对: 有些情况下,操作符的重载只能作为全局函数或 只能作为成员函数 来重载。 ( 4) 可重载的操作符。 除了下面的 五 个操作符外,其它操作符都可以重载: “ .”,“ .*”,“ ::”,“ ?:” , “ sizeof” p236. 第 1~ 3 行 错: 一个操作数所指向的类或结构的成员。 通过对“ ”进行重载,可以实现一种智能指针( smart pointers)。 操作符“ ” 只能作为非静态成员函数重载,重载时需要按单目操作符重载形式来实现。 请仔细体会下面的例子。 对: 一个操作数所指向的类或结构的成员。 通过对“ ”进行重载,可以实现一种 “ 智能指针 ” ( smart pointers) ,用该“指针”访问另一个对象的成员时,能在访问前做一些额外的事情。 操作符“ ”只能作为非静态成员函数重载,重载时需要按单目操作符重载形式来实现。 操作符“ ” 重载之后,其第一个操作数不再是一个通常意义下的指针,而是一个对象(“智能指针”),该对象具有指针 的功能。 请仔细体会下面的例子。 p237. 倒数 第 15 行 错: B b(amp。 a)。 //b为一个智能指针,它指向了 a。 对: B b(amp。 a)。 //b为一个智能指针,它 “ 指向 ” 了 a。 p237. 倒数 第 11 行 错: 值得注意的是,上面使用的操作符“ ”是重载过的操作符,不能按照普通的间接访问成员操作来理解它。 例如,对于 bf(),不能把它理解成访问 b 所指向的对象的成员函数 f,而应按照()f()来理解。 上述的对象 a可以看成是一个共享资源,通过智能指针来访问它,可以实 现对资源访问的次数进行统计。 对:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。