C++第5章特殊函数和成员复习
自考C++程序设计 总复习
输出一个换行符 清除flag标志位 清除flag标志位 设置ch为填充字符 设置浮点数输出精度 设置输出字符间字段宽度
输出 输出 输出 输出 输出 输出
常量名 Ios_base :: left Ios_base ::right Ios_base ::showpoint Ios_base ::showpos Ios_base ::scientific Ios_base ::fixed
(2)析构函数在对象的生存期结束时被主动调用。类得对象数组的每个元素调用一次构造函 数。 (3)析构函数和运算符delete:当使用delete删除一个动态对象时,它首先为这个动态对象调 用析构函数,然后再释放这个动态对象占用的内存。这和使用new建立动态对象的过程刚好相 反。 5.成员函数重载及默认函数 (1)this指针:c++规定当一个成员函数被调用时,系统自动向它传递一个隐含的参数,该参 数是一个指向调用该函数的指针,从而使成员函数知道该对那个对象进行操作。 (2)this指针是c++实现封装的一种机制,它将该对象调用的成员函数连接在一起,在外部看 来,每一个对象都拥有自己的成员函数。一般情况下都省略符号“this->”,而让系统进行默认 设置。 6.一个类的对象作为另一个类的成员 (1)类本身就是一种新的数据类型,所以一个类可以作为另一个类得成员。
(7)当使用new建立一个动态对象,new首先分配足够对象的内存,然后自动构造函数来初始 化这块内存,再返回这个动态对象的地址。 (8)构造函数的默认参数:如果程序定义自己的有参构造函数,又想使用无参数形式的构造 函数,那么就是吧构造函数使用默认参数设计。 (9)复制构造函数:引用在类中一个很重要的用途是用在复制构造函数中。这一类特殊而且 重要的函数通常用于使自己已有的对象来建立一个新对象。复制构造函数原型如下:类名:: 类名(const 类名 &) 4.析构函数 (1)析构函数析构函数的名称和类名一样,为了与构造函数区分在析构函数前面加~符号。析 构函数不能定义任何返回类型,即使指定为void也不行。一般形式如下:类名::~类名 (void)
C语言程序设计教程(第5章 函数)
22
信息科学与工程学院
作用域(可用域)与生存期
C语言中定义的变量都有一个起作用的范 围,称为变量的作用域。 程序运行时,变量被创建和被删除的时间 段,称为变量的生存期。
23
信息科学与工程学院
局部变量和全局变量
在一个函数内部定义的变量是内部变量, 它只在本函数内部范围内有效。也就是说 只有在本函数内才能使用它们。这些变量 称为“局部变量”。 在函数之外定义的变量称为外部变量,也 称为全局变量,在文件内的所有函数都能 使用它。它的有效范围为从定义变量的位 置开始到文件的结束。
4
信息科学与工程学院
5.1 问题的提出
C语言程序是由什么构成的? 函数 什么是函数?
能完成特定功能的功能块; 一般有输入参数 和返回值; 一次定义,可以调用多次。
一个C语言程序为什么需要不同的函数?
一个函数过大难于编写和维护; 一个函数的程序不利于协作; 代码和功能共享的需要。
5
信息科学与工程学院
6. 函数调用举例分析(见下页)
15
信息科学与工程学院
实参到形参是单向值传递 例2 求两个整数中的最大值
int max(int x,int y) /*函数定义*/ { int temp; if (x>y) temp=x; else temp = y; COPY return temp; } void main() { int a,b; scanf("%d,%d",&a,&b); a = max(a,b); /*函数调用*/ printf("\n max= %d \n",a); }
2
信息科学与工程学院
第5章 函数
本章需要掌握的知识点: 函数定义 函数说明 函数调用 形参和实参的关系 变量的存储类别
C语言学习教程第五章-函数(10)
C语言学习教程第五章-函数(10)内部函数和外部函数函数一旦定义后就可被其它函数调用。
但当一个源程序由多个源文件组成时,在一个源文件中定义的函数能否被其它源文件中的函数调用呢?为此,C语言又把函数分为两类:一、内部函数如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用,这种函数称为内部函数。
定义内部函数的一般形式是: static 类型说明符函数名(形参表) 例如:static int f(int a,int b) 内部函数也称为静态函数。
但此处静态static 的含义已不是指存储方式,而是指对函数的调用范围只局限于本文件。
因此在不同的源文件中定义同名的静态函数不会引起混淆。
二、外部函数外部函数在整个源程序中都有效,其定义的一般形式为:extern 类型说明符函数名(形参表) 例如:extern int f(int a,int b)如在函数定义中没有说明extern或static 则隐含为extern。
在一个源文件的函数中调用其它源文件中定义的外部函数时,应用extern说明被调函数为外部函数。
例如:F1.C (源文件一)main(){extern int f1(int i); /*外部函数说明,表示f1函数在其它源文件中*/……}F2.C (源文件二)extern int f1(int i); /*外部函数定义*/{……}本章小结1. 函数的分类(1)库函数:由C系统提供的函数;(2)用户定义函数:由用户自己定义的函数;(3)有返回值的函数向调用者返回函数值,应说明函数类型( 即返回值的类型 );(4)无返回值的函数:不返回函数值,说明为空(void)类型;(5)有参函数:主调函数向被调函数传送数据;(6)无参函数:主调函数与被调函数间无数据传送;(7)内部函数:只能在本源文件中使用的函数;(8)外部函数:可在整个源程序中使用的函数。
2. 函数定义的一般形式[extern/static] 类型说明符函数名([形参表]) 方括号内为可选项。
《c++程序设计》第5章 函数
5.1 函数的定义和调用
5.1.1 函数的概念
函数概念:具备特定功能的独立程序段。
函数包括标准函数和自定义函数。
【例5.1】 在主函数中调用标准函数sin(x)与自定义函数f(x)。
通常将调用f(x)的函数(main())称为主调函数,而将f(x)
称为被调函数。
例程
5.1.2 函数的定义
1.函数的定义格式
在函数定义时,可以明确指定二维数组的行数和列数,也可以不指定行数,但 必须指定二维数组的列数。
(2)函数调用格式
函数名(数组名,…)
(3)参数传送方式为传地址。 【例5.12】 找出3行4列的二维数组中的最大值。 例程
5.4 变量的存储类型
5.4.1 作用域
作用域是变量在程序中可引用的区域。
1.块作用域
用外部类型关键词extern说明的全局变量称为外部变量 。
(1)特性:
外部变量为静态全局变量;
(2)定义格式:
extern <类型> <变量名表>;
【例5.20】 在同一文件中定义全局变量为外部变量的示例,求两个
整数的最大值。
例程
【例5.21】将另一文件中的全局变量定义为本文件外部变量的示例,
求两个整数的最大值。
(3)函数参数
函数调用作为一个函数的实参。
【例5.3.1】用自定义函数求三个整数的最大值。
4.函数返回语句return
例程
(1)格式:
return <表达式>;
或:return (<表达式>);
(2)作用:
返回表达式的值,结束函数执行,并将控制转移到调用函数的地方继续 执行。
5.函数的原型说明
《C语言程序设计课件》第五章—函数
float average(float a, float b) {
float c; c=(a+b)/2; return c; }
float average(float a, float b) {
return (a+b)/2; }
如果return语句中表达式的类型和在函数首部 指定的返回值类型不一致,那么系统会把表达 式的类型隐式转换成返回值类型。例如: int ave(float a, float b) { float c; c=(a+b)/2; return c; } 例如函数调用ave(1.0,2.0)的返回结果为1。
a3
b4
【例5-2】显示提示信息 /* 程序5-2 */ #include <stdio.h> void showinfo( ) {
printf(“This is a minus.\n”); } int main( ) {
int a,b; scanf(“%d%d”,&a,&b); if(a<0) showinfo( ); if(b<0) showinfo( ); return 0; }
swap(a, b);
printf("a=%d,b=%d\n", a, b);
}
程序执行过程如下: ①main函数定义变量a、b并初始化。
a3
b4
②main函数调用函数swap,实参a、b将值传 递给形参x、y。
a3
3x
b4
4y
③swap函数交换x、y的值。
4x
3y
④返回main函数,输出a、b的值,a、b的值 没有改变。
C语言程序设计-第5章--函数
实参可以是常量、变量或表达式,但要求 它们必须要有确定的值,在调用时将实参 的值赋给形参。另外,实参和形参的类型 应相同或兼容。
— 31 —
5.2 函数的参数传递和返回值
➢ 5.2.2 函数的返回值
一般情况下,主调函数调用完被调函数后,都希望能够得到一 个确定的值,这就是函数的返回值。在C语言中,函数返回值 是通过return语句来实现的。return语句的一般形式有3种:
/*函数声明*/
/*调用逆序函数,将a的逆序值赋给b*/ /*调用逆序函数,将b的逆序值赋给c */
— 23 —
5.2 函数的参数传递和返回值
➢ 5.2.1 函数的形参与实参
{
int y=0,sign=1;
/*定义sign表示x的符号,定义变量y代表逆序数据*/
if(x<0)
/*当x小于0时取符号及取反*/
— 18 —
5.1 函数的定义和调用
➢ 5.1.2 函数的调用
另外,按函数在语句中的作用来分,可以有以下3种函数调用方式:
函数表达式
函数语句
函数作为实参
函数作为表达式中的一项出 现,以函数返回值参与表达 式的运算。
函数调用的一般形式加上分 号即构成函数语句。
函数作为另一个函数调用的 实际参数出现,即把该函数 的返回值作为实参进行传送。
#include<stdio.h> int main() {
int x=0,y; y=trans(x); printf("y=%d\n",y); printf("x=%d\n",x); return 0; } trans(int a) { a++; printf("a=%d\n", a); return a; }
c程序设计第五章特殊函数和成员精品PPT课件
5.1对象成员的初始化
类的对象可以做其他类的数据成员,称为对象成员。 如: class A {
类名1 成员1; 类名2 成员2; …… };
当A类产生对象时要初始化A的所有成员,所以会调 用A类的构造 函数。
1
A类的构造函数定义如下: A::A(参数0):成员1(参数1),成员2(参数2),成员n(参数表n) { //其他操作…… } 注:如果初始化列表某项的参数表为空,则列表中相应的项可 以省略。
9
using namespace std; class example { const int num;
int data; int &ref; public: example(int n,int f):num(n),data(f),ref(data) {cout<<"构造..."<<endl;} void show() {cout<<"对象中的数据是:"
2
如有: class date { int year,month,day; public:
…… }; class student { int num;string name;
date birthday; public:
…… }; 则student类的构造函数形式为:
student(int n,string s,date d) :num(n),name(s),birthday(d)
静态数据成员的初始化
12
2、static成员的所有者是类,被该类的所有对象所共 有, 所有对象均可访问静态成员 。静态成员仍然遵循
public,private, protected访问准则。
《c语言程序设计》课件第5章函数
}
函数无返回值,用void定义返回值类型
用void定义参数,表示没有参数
return语句后无需任何表达式
函数定义(Function definition)
【例】 计算整数n的阶乘n!
/* 函数功能: 用迭代法计算n! 函数入口参数: 整型变量n表示阶乘的阶数 函数返回值: 返回n!的值*/long Fact(int n) /* 函数定义 */{ int i; long result = 1; for (i=2; i<=n; i++) { result *= i; } return result; }
类型 函数名(类型 参数1, 类型 参数2, ……)
{
声明语句序列 可执行语句序列
return 表达式;
}
函数体的定界符
参数表里的变量(叫形式参数,Formal Parameter)也是内部变量
函数体
void 函数名(void)
{
声明语句序列 可执行语句序列
第5章 函数
添加副标题
C语言程序设计
函数定义、函数调用、函数原型、函数的参数传递与返回值
01
函数封装,函数复用,函数设计的基本原则,程序的健壮性
02
变量的作用域与存储类型,全局变量、自动变量、静态变量、寄存器变量
03
预处理指令#include、#define、#undef、#if、#endif
信息隐藏(Information Hiding, Parnas, 1972)
02
分而治之与信息隐藏
程序设计的艺术
算法设计艺术程序的灵魂Donald E. Knuth,
“The Art of Computer Programming”,
C++程序设计第五章
第五章特殊函数和成员5.1对象成员的初始化如果初始初始化列表某项的参数函数表为空,则列表相应的项可以省略对象成员构造函数的调用顺序取决于这些对象成员在类中的说明顺序。
析构函数的调用顺序与构造函数正好相反。
5.2静态成员简单成员函数是指声明函数不含const、volatile、static关键字的函数。
如果类的数据成员或成员函数使用关键字static进行修饰,这样的成员称为静态成员或静态成员函数,统称为静态成员。
静态数据成员能说明一次,如果在类中仅对静态数据成员进行声明,则必须在文件作用域的某个地方进行定义。
在进行初始化时,必须进行成员名限定。
除静态成员的初始化之外,静态成员遵循类的其他成员函数所遵循的访问限制,由于数据隐蔽的需要,静态数据成员通常被说明为私有的,通过成员限定访问静态成员,比使用对象名访问静态成员要好,因为静态成员是类的成员而不是对象的成员。
类中的任何成员都可以访问静态成员。
因为静态成员函数没有this指针,所以静态成员函数只能通过对象名(或指向对象的指针)访问该对象的非静态成员。
(1)可以不指向某个具体的对象,只与类名连用。
(2)在没有建立对象之前,静态成员就已经存在。
(3)静态成员为类的成员,不是对象的成员。
(4)静态成员为该类的所有对象共享,它们被存储于一个公用内存中。
(5)没有this指针,所有除非显式地吧指针传给它们,否则不能存取类的数据成员。
(6)静态成员函数不能被说明为虚函数。
(7)静态成员函数不能直接访问非静态函数。
关键字static声明的类的对象,但要注意它的构造函数与析构函数的调用特点。
5.3友员函数友员函数可以存取私有成员、公有成员和保护成员。
1.类本身的友元函数2.将成员函数做有元3.将一个类说明为另一个类的友元友元关系是不传递的即当说明类A是类B的友元,类B又是类C的友元时,5.4 const对象可以再使用const关键字定义数据成员和成员函数和修饰一个对象。
《C语言程序设计》第五章 函数
在执行过程中,每递归 调用一次,就引用一组 全新的自动变量,完全 独立于上层调用的变量 ,即各层递归调用的变 量各自独立。可插入一 个打印语句给以证明。
运行结果: n=123 n=12 n=1 123
5.7 变量的存储类型及其作用域
C程序中每一个变量和函数都有两个属性:
数据类型和存储类别。
char short int 数据类型确定 数据的存放形式 、值域及允许的 运算等。
个限定词,以限制函数的调用范围。省略存储类别隐 指外部函数,可供其它文件中的函数调用;静态函数 只能被本程序文件的函数调用。
提示: 在定义和说明变量时,应按照变 量的作用范围以及它们在存储单元 中保持值的时间长短的需要,对它 们的存储类别进行说明限定。
(1) 局部变量及其作用域
函数内部定义的变量统称为局部变量 ,包括形参变量,由于存放在动态区, 故也称为动态变量。
三点说明:
若不返回值,则用void类型定义函数。 void printmessage( ){ „„ }
5.3 函数的返回值与函数类型说明
函数的类型应与return中的表达式类 型一致,函数类型决定返回值的类型
三点说明:
一个函数可以有多个return语句。可采用形式: return(表达式); return; //带值返回 //不带值返回
5.3 函数的返回值与函数类型说明
函数的类型应与return中的表达式类 型一致,函数类型决定返回值的类型
三点说明:
若return后面括号中的表达式为非整型,则必须在 函数名前冠以函数的类型说明。函数类型决定返回值 的类型。
5.3 函数的返回值与函数类型说明
函数的类型应与return中的表达式类 型一致,函数类型决定返回值的类型
C程序设计(第四版)第5章 函数
5.3 变量的作用域与存储属性
4、寄存器变量(register):存放在寄存器中 的局部变量称为寄存器变量。寄存器变量定义 格式如下: register 数据类型 变量名;
变量存放在寄存器中,其处理速度要比存放在内存 中的自动变量快得的多。 受硬件的影响,寄存器变量的数目很有限。 并不是所有变量都可以定义为寄存器变量,只有局 部变量,并且只能是int,char等类型的变量才能定 义成寄存器变量。 寄存器变量的作用域与自动变量相同。
5.1 函数的定义
5.1.2 函数的定义
函数定义就是确定该函数完成什么功能,函数 定义的一般格式如下: 函数类型 函数名(形式参数表) /*函数首部*/ { /*函数体*/ 数据定义语句序列; 执行语句序列; }
说明: 1、函数首部 (1)函数类型:指本函数返回值的数据类型,可以是C语言 中规定的各种类型。有的函数并不需要返回值,这时可以 用类型标识void明确表示该函数无返回值。默认的返回值 类型是int。 (2)函数名:必须是一个合法的标识符 (3)形式参数表:定义函数时的参数称为形式参数,简称 形参。形参表中,可以没有参数,也可以有多个参数。如 果没有参数,这样的函数叫做无参函数,相反则称为有参 函数,当有多个参数时,参数之间用逗号隔开,并且须分 别说明参数的类型。 2、函数体 (1)函数体由位于最外层的一对大括号标识。函数体用以 实现函数的功能。 (2)return语句:用以返回函数的值,其格式为: return 表达式; 或者 return (表达式)
p,q的作用范围
c1,c2的作用范围
5.3 变量的作用域与存储属性
5.3.2 变量的存储属性
变量的存储属性是从时间的角度研究变量的生命周期, 它是指在程序运行期间变量的存在期限。 从变量的生命周期来看,有两种存储属性:静态存储和 动态存储。静态存储是指在程序运行期间,分配固定的 存储空间;动态存储是指在程序运行期间,根据需要进 行动态分配存储空间。 在定义一个变量时,其实不仅需要说明其数据类型,还 应说明其存储属性。所以定义一个变量的完整格式应该 是: [存储属性] 数据类型 变量名1[,变量名2,„,变量名n];
C语言教程第5章函数
C语言教程第5章函数
C语言支持函数式编程方法,允许在程序中使用函数来撰写代码,函
数可以使程序模块化,把大的程序分解成小的功能块,使代码可复用,提
高程序的可读性和可维护性。
本章主要介绍C语言中函数的基本概念、声明及使用方法,以及函数
的参数传递和返回值。
1.函数概念及声明
在C语言中,我们可以定义函数来实现其中一种特定功能,它可以接
收参数,并返回一个结果。
在定义函数时,需要指定函数的返回值类型、
函数名及参数列表:
return_type function_name (parameter_list)
//函数代码
其中,返回值类型(return_type)可以是任意的C语言数据类型,
函数名(function_name)要求必须是唯一的,参数列表
(parameter_list)是由括号内的参数名和参数类型组成的,用逗号分隔。
2.函数调用
定义完函数后可以在程序中使用它,函数调用的格式为:
return_type function_name (parameter_list)
其中,return_type是函数的返回值类型,function_name是函数名,parameter_list是参数列表,这里用实际的参数替换参数列表。
3.函数参数传递
在C语言中,参数传递有三种方式:传值调用,传地址调用和传指针调用。
(1)传值调用
传值调用是最常见的参数传递方式,也是默认的参数传递方式。
C语言程序设计实用教程课件第5章函数
函数调用形式:
printHello();
5.1 函数的定义与调用
书写函数时注意:
(1)程序中如果定义了多个函数,这些函数定 义在书写上应该是并列的关系,而不是嵌套 的关系。
例如,一个源程序有三个函数组成:
void f1(float x) {…} int main() {
2. 在main()函数中使用一个for循环,检查1到10000之 间的所有整数是否为完全数。
#include <stdio.h>
int isPerfect(int x);
//函数原型,判断x是否完全数
void displayPerfect(int x); //函数原型,输出x的因子之和的公式
void main(){
int main() { float a=3.0; f1(2.0); f2(a);
}
5.1 函数的定义与调用
书写函数时要注意点:
例如,函数定义在后,函数调用在前的情形:
void f1(float);
//函数原型,省略了形参名
void f2(int x);
//函数原型
int main() {
f1(2.0f);
printf("%d",i);
} printf("\n");
printf(i==1? "%d":"+%d",i);
}
5.2 函数的参数传递
函数的调用者如何将实际参数值传递给 被调用者?
C语言的参数传递方式:
按值传递 按地址传递。
C++语言增加:
按引用传递
c语言大学实用教程 第5章 函数
如果没有参数,则应该用void注明
函数的返回值只有一个
如果不需要返回值,则应该用void定义返回值类型
– 返回值类型与return语句配合
当函数执行到return语句时,就中止函数的执行,返回到 调用它的地方
函数内部可以定义只能自己使用的变量,称内部变量。
– 参数表里的变量也是内部变量
2020/11/17
– 此话音落不久,诸葛亮果然病故于五丈原。 “事无巨细”,“事必躬亲”
– 管理学的观点是极其排斥这种做法的,认为工作必
须分工,各司其职
– 其中的思想,在程序设计里也适用
2020/11/17
4
程序设计的艺术
结构化程序设计有两大最高级的艺术 – 算法设计艺术 – 结构设计艺术
C语言为程序的结构提供了两样武器 – 函数和模块
因变量 的关系
一个变量 二个变量
…… N个变量
9
数学函数(5)
关系
2020/11/17
集合B
集合A
10
程序设计中的函数
程序设计中的函数不局限于计算 – 计算类,如打印阶乘表的程序…… – 判断推理类,如排序、查找……
2020/11/17
11
用函数解决问题的要点
分而治之
– 函数把较大的任务分解成若干个较小的任务,并提炼出
函数(function)是结构设计的最基本单位
– “一个程序应该是轻灵自由的,它的子过程就象串
在一根线上的珍珠。”
Geoffrey James的《编程之道》
2020/11/17
5
数学函数(1)
y f (x)
因变量
2020/11/17
函数名
自变量
6
C语言第五章 函数
11
5.2函数的调用 5.2函数的调用
主函数main 主函数main …… int main( ) {…… func1(……); func1(……); …… a=func2 ……) a=func2(……); return 0; } func1 func1 double func1 ……) func1(……) { …… }
2
第五章 函数
C程序 源程序文件1 源程序文件i 源程序文件n
预编译命令
函数1
函数n
声明部分
执行部分
C程序结构
必须有且只能有一个名为main的主函数。 必须有且只能有一个名为main的主函数。 main的主函数 程序的执行总是从main函数开始, main函数开始 C程序的执行总是从main函数开始, main中结束 中结束。 在main中结束。
第五章
函数
1
第五章 函数
模块化程序设计 基本思想: 基本思想:将一个大的程序按功能分割成 一些小模块。 一些小模块。 特点: 特点: 各模块相对独立、功能单一、 各模块相对独立、功能单一、结构清 晰、接口简单 控制了程序设计的复杂性 提高元件的可靠性 缩短开发周期 避免程序开发的重复劳动 易于维护和功能扩充 开发方法: 自上向下,逐步分解, 开发方法: 自上向下,逐步分解,分而治之
13
5.2函数的调用 5.2函数的调用
【例5-1】 输出两个整数的值。 输出两个整数的值。 #include <stdio.h> void fun(int x, int y) { printf(”%d,%d”, x, y); } int main( ) { int iFirst, iSecond; iFirst = 123; iSecond = 99; fun(iFirst, iSecond); return 0; }
c语言课件 第05章 函数
printstar( c );
函数表达式
C=2*areas(l,w);
函数参数
m=max(a,max(b,c));
例5-1:确定和返回3个整数的最大值,并输出结果 :确定和返回 个整数的最大值, 个整数的最大值
#include <stdio.h> int maximum( int,int,int ); /*函数原型语句 函数原型语句*/ 函数原型语句 int main( ) { int a, b, c; printf( "Enter three integers: " ); scanf( "%d%d%d", &a, &b, &c ); printf( "Maximum is: %d\n", maximum(a,b,c)); return 0; } int maximum( int x, int y, int z ) /* 函数定义 */ { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max; }
二、函数的返回值
1、无返回值函数 、 返回类型必须用void,函数体内无 返回类型必须用 ,函数体内无return 语 句或return 语句中无表达式。 语句中无表达式。 句或 2、有返回值的函数 、 返回值类如果不是void,就表示函数有返回 返回值类如果不是 , 函数体必须包含带表达式的return 语句。 语句。 值。函数体必须包含带表达式的 函数体可有多条retrun语句。但在执行时只能 语句。 函数体可有多条 语句 遇到一条。 遇到一条。
#include <stdio.h> int maximum( int x, int y, int z ) { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; return max; } int main( ) { int a, b, c, max; printf( "Enter three integers: " ); scanf( "%d%d%d", &a, &b, &c ); max = maximum(a,b,c); printf( "Maximum is: %d\n", max ); return 0; }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章特殊函数和成员
(一)本章知识点
1、对象成员的初始化
2、静态成员、友元函数
3、 const对象
4、数组和类
5、指向类成员函数指针
6、求解一元二次议程掌握设计方程类及其成员函数的方法,编程实现的步骤和方法
(二)考核要求
1、熟练掌握对象成员的初始化,达到“领会”层次。
2、熟练掌握静态成员,达到“领会”层次。
3、理解友元函数,达到“简单应用”层次。
4 、理解const对象,达到“领会”层次。
5、熟练掌握数组和类,达到“领会”层次。
6、理解指向类成员函数指针,达到“领会”层次。
7、掌握设计方程类及其成员函数的方法,编程实现的步骤和方法,达到“领会”层次。
(三)重点与难点
重点:对象初始化、静态成员、数组和类。
难点:友元、转换函数、指向类成员函数的指针。
主要内容:
1、对象成员的初始化
2、静态成员与友元函数
3、const对象
4、数组和类
考情分析:
本章所占分值5%,一般以单选、填空为主。
重点内容:
静态成员
友元
const对象
数组和类
一、对象成员的初始化和静态成员
1、对象成员的初始化
对象成员的构造函数的调用顺序:取决于在类中的说明顺序
析构函数的调用顺序与构造函数正好相反
2、静态成员
1)简单成员:
声明中不含const、valitile、static的关键字函数
2)静态成员函数的特点
七点:
二、友元函数
1、友元函数是直接可以访问类的私有成员的非成员函数
格式如下:
friend 类型函数名(形式参数)
2、定义在类外的普通函数了,他不属于任何类,但需要在类的定义中加以声明
3、友元的作用是提高了工序的运行效率,但又破坏了类的封装性和隐藏性
三、const对象
四、指向类成员函数的指针
历年真题剖析。