C++语言导学 第三章 模块化 - 3.1 引言
2021/12/29 11:08:33
本文主要是介绍C++语言导学 第三章 模块化 - 3.1 引言,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第三章 模块化
- 3.1 引言
3.1 引言
一个C++程序包含许多独立开发的部分,例如函数、用户自定义类型、类层次和模版等。其管理的关键就是清晰地定义这些组成部分之间的交互。第一步也是最重要的一步是将每个部分的接口和实现分离开来。在语言层面,C++使用声明来表达接口。声明(declaration)指明了使用一个函数或一个类型所需要的东西。例如:
double sqrt(double); //这个平方根函数接受一个double,返回值也是一个double class Vector{ public: Vector(int s); double& operator[](int i); int size(); private: double* elem; //elem指向一个数组,该数组包含sz个double int sz; };
这里的关键点是函数体,即函数的定义(definition)是位于“别处”的。对本例,我们可能也想让Vector的表示位于“别处”,不过稍后将再对此进行介绍(抽象类型)。sqrt()的定义如下所示:
double sqrt(double d) //sqrt()的定义 { //...求解平方根的算法,与数学教科书中并无二致... }
对于Vector来说,我们需要定义全部三个成员函数:
Vector::Vector(int s) //构造函数的定义 :elem{new double[s]},sz{s} //初始化成员 { } double& Vector::operator[](int i) //下标运算符的定义 { return elem[i]; } int Vector::size() //size()的定义 { return sz; }
我们必须定义Vector的函数,而不必定义sqrt(),因为它是标准库的一部分。但是这没什么本质区别:库不过就是一些“我们碰巧用到的其他代码”,它也是用我们所使用的语言设施所编写的。
一个实体(例如函数)可以有很多声明,但只能有一个定义。
这篇关于C++语言导学 第三章 模块化 - 3.1 引言的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享