语言的学习(7)--函数

来源:互联网 发布:短信群发系统源码 编辑:程序博客网 时间:2024/05/17 18:49

如果认为数据+操作就是程序的话(当然这里是命
令式的程序)
那么程序设计语言就可以分成两个分支来看
一个是数据分支
一个是操作分支
不同时代的程序设计语言分别沿着这两个方向进行
着不同程度的抽象到目前已经有的抽象分类来说有

数据抽象
 类型抽象:现在一般高级语言都有类型系
 统。
 
 复合抽象:一般高级语言保留了一些构造
 变量类型 如数组,枚举等
 
 类/对象抽象:这个是在将数据,与数据相
 关的操作以及 继承性共享,多态性操作集
 合起来做抽象。
操作抽象
 函数抽象:也可以称之为表达式抽象。这个
 抽象主要是对子过程的抽象。

对于抽象有两个方面:
 一 由于高级语言在应付程序设计方面的需
 求而促使高级语言设计出更高级别的抽象来
 满足程序设计的需求
 二 在于实现这些抽象的代价越来越小和设
 计的越来越合理。
 
这里讨论的是C++ 中的函数。
由于可以这么认为函数是操作抽象的表现之一。而
操作在C++中最基本手段是表达式如同数据的最基本
手段是基本类型变量似的。所以函数中的有些形式有些
像表达式形式。
这里先归纳一下C++中函数概念 然后从表达式的角度
来分析。
函数定义: C++ 定义包括三个方面 返回类型 函数
名 函数参数
一 函数说明: 函数在定义前调用函数需要说明,这个
主要是C++编译器没有向前看的原因(why)
二 函数调用: 函数调用可以使用三种方式传递参数,
传值,传址,引用。
三 函数的调用的特点:参数表达式的计算顺序,参数
的个数,参数默认值,如何传递数组(按数组名 指
针 自定义类型--可以使用引用)
四 内联函数:类似于宏定义中函数。但不能包含循环和
开关函数。常用于类的内部函数。
五 函数重载:这个后面讨论主要设计的类型继续参数
个数继续
六 函数的嵌套和递归调用

从表达式的角度来看函数:
 一 表达式内容包括三个部分
 计算值 计算结果类型 操作数
 二 表达式副作用和无副作用表达式
就表达式而言函数相同点
 一  函数的返回值和返回类型类似于表达式
 的计算值和计算类型
 二  表达式可以使有副作用的和无副作
 用的,函数也可以是在操作数上分传值和传
 地址和引用型的实现有副作用的。
就表达式而言函数的不同点:
 一 函数实现了多个操作包括控制流的封装
 二 实现了函数内变量对外的封装,和函数
 内变量对内的共享
 三 实现了计算返回和操作数类型的检验
以上就操作的抽象之一的函数子程序的封装。
 
 
 
 

原创粉丝点击