《C++面向对象高效编程(第2版)》——3.18 客户对类和函数的责任

简介:

本节书摘来自异步社区出版社《C++面向对象高效编程(第2版)》一书中的第3章,第3.18节,作者: 【美】Kayshav Dattatri,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.18 客户对类和函数的责任

C++面向对象高效编程(第2版)
设计优秀且文档完备的类只有在客户使用时才有用。以上所有的讨论旨在满足客户的要求和需求,另一方面,客户也有自己的责任。客户必须记住以下所列的几点。再者,还需记住,在软件世界中,我们中的大多数人同时扮演着客户和实现者的角色。

(1)理解类的用途。即使类的名称可以表明它的用途,但文档中可能还会有其他的建议。类的名称所传达的信息非常有限。

(2)清楚地理解类的实现者希望从客户方面获得什么。在客户和实现者之间有一个契约。

(3)注意每个成员函数,特别是const成员函数——它们比较安全。

(4)理解传递的参数。当类采用参数时要小心,绝不传递局部对象(栈对象)的地址给采用对象的函数。

(5)当函数返回指针和引用时,理解你的责任是什么。特别要理解对存储区的责任。

(6)如果类的文档和头文件中的信息不同,在使用类之前,要区分哪一个是正确的。

(7)优先使用以指向const的指针和对const的引用作为参数的函数,这些函数比较安全。

(8)不管类的实现者是谁,不要依赖他告诉你的任何非文档说明的类细节。要坚持使用类接口和说明文档。

(9)要提防那些连最小成员函数集合(构造函数、复制构造函数、赋值操作符和析构函数)都尚未实现的类。

我们将在后续章节介绍更多关于客户责任的内容。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
3天前
|
存储 编译器 C语言
c++的学习之路:5、类和对象(1)
c++的学习之路:5、类和对象(1)
19 0
|
3天前
|
C++
c++的学习之路:7、类和对象(3)
c++的学习之路:7、类和对象(3)
19 0
|
2天前
|
设计模式 Java C++
【C++高阶(八)】单例模式&特殊类的设计
【C++高阶(八)】单例模式&特殊类的设计
|
2天前
|
编译器 C++
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
|
6天前
|
存储 安全 C语言
【C++】string类
【C++】string类
|
8天前
|
C++
面向对象的C++题目以及解法2
面向对象的C++题目以及解法2
16 1
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
8天前
|
编译器 C++
标准库中的string类(上)——“C++”
标准库中的string类(上)——“C++”
|
8天前
|
编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(中)——“C++”
|
8天前
|
存储 编译器 C++
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”
自从学了C++之后,小雅兰就有对象了!!!(类与对象)(上)——“C++”