《c++语言导学》——第3章 模 块 化 3.1 引言
2023-09-11 14:19:12 时间
本节书摘来自华章计算机《c++语言导学》一书中的第3章,第3.1节,[美] 本贾尼·斯特劳斯特卢普 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第3章 模 块 化引言
错误处理异常;不变式;静态断言 3.1 引言
一个C++程序可能包含许多独立开发的部分,例如函数(见1.3节)、用户自定义类型(见第2章)、类层次(见4.5节)和模板(见第5章)等。因此构建C++程序的关键就是清晰地定义这些组成部分之间的交互关系。第一步也是最重要的一步是把某个部分的接口和实现分离开来。在语言的层面,C++使用声明来描述接口。声明(declaration)指定了使用某个函数或某种类型所需的所有内容。例如:
"
这里的关键点是函数体,即函数的定义(definition)位于“其他某处”。在此例中,我们可能也想让Vector的描述位于“其他某处”,不过,我们将稍后再介绍相关内容(抽象类型,见4.3节)。sqrt()的定义如下所示:
![1ecc4317b19208b1bbcdf936027fb03eeb8c4b87](https://yqfile.alicdn.com/1ecc4317b19208b1bbcdf936027fb03eeb8c4b87.png)
对于Vector来说,我们需要定义全部三个成员函数:
![99755bea69e1c4b72e6d8b74fdb27fff14bbd9c2](https://yqfile.alicdn.com/99755bea69e1c4b72e6d8b74fdb27fff14bbd9c2.png)
我们必须定义Vector的函数,但不必定义sqrt(),因为它是标准库的一部分。然而,这没什么本质区别:库其实就是一些“我们碰巧用到的其他代码”,编写这些代码用到的语言特性就是我们正在使用的那些。
相关文章
- C++ code:浮点数的比较(Floating-Pointing Number Comparison)
- Linux C++开发环境搭建
- C/C++基础讲解(二十三)之数据结构篇之魔王语言翻译与火车车厢重排
- C/C++基础讲解(九)之基础例程5篇
- Open3D(C++) 快速计算点云的法向量
- 【C++竞赛 A】xxx的项链
- Algorithm:C++语言实现之队列相关算法(最短路径条数问题、拓扑排序)
- Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)
- 蓝桥杯官网 试题 PREV-281 历届真题 时间显示【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法
- C++设计模式:策略模式
- 使用Qt和C语言或者C++语言实现十、二、八、十六进制之间的转换(两种方法)
- 【华为OD机试 2023】垃圾短信识别(C++ Java JS Python)
- c语言的头文件-不是c++类的头文件?
- 【回答问题】ChatGPT上线了!请使用C++语言写一个谷歌 LaMDA模型?
- C++如何获取操作系统的语言版本
- 尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言
- 第十三届蓝桥杯Java、C++、Python组国赛真题——环境治理(三语言AC)
- 【C++设计模式】创建型模式 — 建造者模式