ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++语言导学 第三章 模块化 - 3.1 引言

2021-12-29 10:02:53  阅读:126  来源: 互联网

标签:定义 int double C++ 导学 Vector sqrt 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(),因为它是标准库的一部分。但是这没什么本质区别:库不过就是一些“我们碰巧用到的其他代码”,它也是用我们所使用的语言设施所编写的。

一个实体(例如函数)可以有很多声明,但只能有一个定义。

标签:定义,int,double,C++,导学,Vector,sqrt,3.1,函数
来源: https://blog.csdn.net/qq_40660998/article/details/122110581

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有