函数函数与运算符的重载
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
包含返回值的变量(或对象)。
8.1.5 函数的参数
8.1 函数
C++语言允许3种函数参数的设置和
8.2 函数的嵌套 与递归
使用: (1)无参函数:用void或空表示无参
数。
8.3 函数与运算 符的重载
(2)一个或多个参数:参数的个数、
类型和顺序都是确定的。
8.4 函数与C++ (3)不定个数的参数:较为特殊,C+ 程序结构 +语言的某些版本支持处理形如void
8.2 函数的嵌套 (2)核对实际参数的类型、个数和
与递归
顺序是否与函数定义中的形参表相
8.3 函数与运算 一致。
符的重载
(3)根据参数类型(值参或引用参
数)进行值参数的传递或者引用参
8.4 函数与C++ 程序结构
数的“换名”。
(4)运行函数体代码。
(5)返回调用点,并返回函数值。
8.1.4 函数返回
8.2 函数的嵌套 说明时,系统默认是函数返回整型值。
与递归
(2)返回数值类型:函数调用返回数
值。当函数要返回多个数值时,可使
8.3 函数与运算 符的重载
用结构、类、结构指针、数组指针或
对象指针的形式实现。
8.4 函数与C++ 程序结构
(3)返回引用类型:当函数被说明为 某类型的引用类型时,函数调用返回
8.1 函数
对已定义函数的一次实际运行被称为
函数调用。即函数调用是函数定义的
8.2 函数的嵌套 与递归
“实例”。
函数调用的形式:
8.3 函数与运算 符的重载
(1)表达式中 (2)独立的函数调用语句
8.4 函数与C++ 程序结构
例2:
xr=cuberoot (-q/2+a) +
cuberoot(-q/2-a);
8.2 函数的嵌套 与递归
方式。
8.3 函数与运算 (1)赋值调用方式 符的重载 函数调用时,检查函数名及参数表之
8.4 函数与C++ 程序结构
后,首先为值参数分配内存,创建参 量变量;然后计算实参表达式的值,
将值赋给刚创建的参量变量;最后开
始函数体的运行。
&赋值形参:在函数形参表中除了被声
8.1 函数
的程序设计(结构化程序设计)。
面向对象程序设计在使用函数的基础
8.1 函数
上,又引入了类的概念,使得程序在
具有模块化的基础上又具有了可重用
8.2 函数的嵌套 与递归
性好的特点。
8.3 函数与运算 符的重载
8.4 函数与C++ 程序结构
8.1.1 函数的说明
8.1 函数
两种函数说明语句形式:
(1)函数原型(或函数声明)
置于类说明之中。
8.1. 2 函数定义
8.1 函数
函数定义与函数原型的主要区别是包
含函数体。
8.2 函数的嵌套 与递归
格式:
[<属性说明>]<类型><函数名>
8.3 函数与运算 符的重载
(<参数表>)<函数体>
8.4 函数与C++ 程序结构
函数体:由“{}”括起来的复合语句。
8.1.3 函数调用
若干个可缺省参数,位置在后。主要
8.4 函数与C++ 程序结构
作用是提高函数调用时的灵活性。
例4: int sqrsum (int a, int b, int c=0){
return a*a+b*b+c*c; }
8.1.6 值调用和引用调用
8.1 函数
根据对参数的处理方式,可将函数调
用区分为:赋值调用方式和引用调用
add(int a, int b)
函数原型一般在两种情形下被使用:
8.1 函数
(1)程序中某函数的调用语句出现在
8.2 函数的嵌套 该函数的定义之前,此时必须在调用
与递归
语句之前列出函数原型。
8.3 函数与运算
符的重载
(2)为使类的定义简单清晰,一般将
8.4 函数与C++ 语句较多的成员函数定义移至类说明 程序结构 之外,此时必须将该成员函数的原型
8.2 函数的嵌套 与递归
(2)函数定义
8.3 函数与运算 8.1.1.1 函数原型(或函数声明)
符的重载
用来指出函数的名称、类型和参数。
8.4 函数与C++ 程序结构
格式:
[<属性说明>]<类型><函数名>
(<参数表>);
属性说明:可以是下列关键字之一:
inline, static, virtual, friend等。P131
8.1 函数
类型:指函数的返回类型。除了ma
8.2 函数的嵌套 in主函数以及类的构造函数和析构函
与递归
数,所有函数都须声明返回类型。
8.3 函数与运算 函数名:标识符。
符的重载
参数表:可能为空、或者是<类型>
8.4 函数与C++ 程序结构
例1:
<参数名>的形式。 cuberoot(float x)
swap (a,b);
函数调用的要素:
8.1 函数
(1)函数名 (2)实参表
8.2 函数的嵌套 <函数名>(<实参表>)
与递归
8.3 函数与运算 实参表中的参数类型、参数个数、
符的重载
参数顺序必须和函数说明的形参表
一致。
8.4 函数与C++
程序结构
函数调用的具体过程:
8.1 函数
(1)根据调用语句中的函数名在整 个程序中搜索同名函数定义。
明为引用的参数之外,其余所有类型 的形参都属于赋值形参。每次函数调
8.2 函数的嵌套 用时,必须为赋值形参创建新的参数
与递归
变量。
8.3 函数与运算 符的重载
&实参表达式:在具体的函数调用语句
中,实参可以是和形参类型一致的常
8.4 函数与C++ 程序结构
把程序中反复出现的相同或相近的程
8.1 函数
序改写成子程序,这些子程序就是函 数。
8.2 函数的嵌套
与递归
把整个程序要完成的复杂的计算任务,
8.3 函数与运算 分解为一个个较小的相对简单的但又 符的重载 功能明确的子任务,这些子任务就是
函数。
8.4 函数与C++
程序结构
从上面两点可见编写函数就是模块化
adc(int i, …)的不定参数函数。
其它:
8.1 函数
(1)C++语言允许形参表包含无名
8.2 函数的嵌套 参数。主要作用是区分函数。(P134)
与递归
例3:int f (int a, int b, int) {return
a*a+b};
8.3 函数与运算
符的重载 (2)C++语言允许为形参表中包括
8.1 函数
两个任务:
8.2 函数的嵌套 (1)将程序控制从函数体返回
与递归
到函数调用点。
8.3 函数与运算
符的重载 (2)根据返回值要求,返回所
8.4 函数与C++ 需的数据值。
程序结构
函数的返回值有3Baidu Nhomakorabea情形:
(1)返回void类型:若函数调用无返
8.1 函数
回值,应说明为void类型。未作类型