1、第一章 编程特点 操作系统的特点操作系统的特点 一、直观、高效的面向对象的图形用户界面,易学一、直观、高效的面向对象的图形用户界面,易学易用易用二、用户界面统一、友好。二、用户界面统一、友好。三、丰富的设备无关的图形操作。三、丰富的设备无关的图形操作。四、多任务。四、多任务。 程序的特点程序的特点一、用户图形界面一、用户图形界面二、多任务二、多任务、 抢先式多任务抢先式多任务、非抢先式多任务、非抢先式多任务 编程的特点编程的特点一、面向对象的编程思想一、面向对象的编程思想在编程中,一般都是采用面向对象的编程方式。在编程中,一般都是采用面向对象的编程方式。二、消息驱动的程序结构二、消息驱动的程序
2、结构用户输入系统消息队列应用程序中的消息队列另一个应用程序中的消息队列应用程序的主程序中的消息处理函数窗口函数1窗口函数n应用程序的主程序中的消息处理函数窗口函数1窗口函数n三、分段式的编程结构三、分段式的编程结构的编程方式是一个以事件为驱动,编程者不必完全负责程序的流的编程方式是一个以事件为驱动,编程者不必完全负责程序的流程,而是由事件来决定。程,而是由事件来决定。四、高效的内存管理四、高效的内存管理为了保证多任务的运行,采用了一系列的措施来提高内存的利用为了保证多任务的运行,采用了一系列的措施来提高内存的利用率。这些措施是:率。这些措施是:、当一个程序运行同一个应用程序的多个拷贝时,每个拷
3、贝使用、当一个程序运行同一个应用程序的多个拷贝时,每个拷贝使用相同的代码段和相同的资源。相同的代码段和相同的资源。、环境中分配内存块多数是可移动的,从而便于对内存的管理和、环境中分配内存块多数是可移动的,从而便于对内存的管理和提高资源的利用率。提高资源的利用率。、代码段和程序资源通常都是视需要而被装入内存的,而且在多、代码段和程序资源通常都是视需要而被装入内存的,而且在多数情况下分配可丢弃的内存。数情况下分配可丢弃的内存。五、数据交换和共享五、数据交换和共享提供了多种手段进行数据交换和共享,如:剪贴板、动态数据提供了多种手段进行数据交换和共享,如:剪贴板、动态数据交换、动态数据链接、插入和链接
4、、。交换、动态数据链接、插入和链接、。六、与设备无关的图形接口六、与设备无关的图形接口提供了丰富的、与设备无关的图形处理功能,应用程序可以很提供了丰富的、与设备无关的图形处理功能,应用程序可以很方便的画出各种图形而不必直接与具体的输出设备打交道。方便的画出各种图形而不必直接与具体的输出设备打交道。第二章 对的扩充 对的扩充对的扩充 、在原来面向过程的机制基础上,对语言的功能做了不少、在原来面向过程的机制基础上,对语言的功能做了不少 扩充扩充 、增加了面向对象的机制、增加了面向对象的机制 最简单的程序最简单的程序例例 输出一行字符输出一行字符 * 本程序的作用是输出一行字符本程序的作用是输出一行
5、字符 * ()(“ ”); “ . ”; 本行输出一行字符本行输出一行字符程序运行时输出:程序运行时输出: . .说明:说明:、在程序中,一般习惯在主函数前面加上一个类型声明符,表、在程序中,一般习惯在主函数前面加上一个类型声明符,表示该函数没有返回值。示该函数没有返回值。 、除了可以使用、除了可以使用* *形式的注释外,还允许使用以开头的形式的注释外,还允许使用以开头的注释。注释。 、除了可以使用函数输出信息外,还可以使用进行输出。、除了可以使用函数输出信息外,还可以使用进行输出。 、使用需要用头文件,在程序的第一行用命令将该头文件、使用需要用头文件,在程序的第一行用命令将该头文件“包含包含
6、”进来。进来。 的输入和输出的输入和输出 流流 名名含含 义义隐含设备隐含设备cin 标准输入标准输入键盘键盘cout标准输出标准输出屏幕屏幕cerr标准出错输出标准出错输出屏幕屏幕clogcerr的缓冲形式的缓冲形式屏幕屏幕一、用进行输出一、用进行输出说明:说明:、必须与输出运算符、必须与输出运算符 一起使用,一起使用, 称为称为“插入运算符插入运算符”。例:例: “.”;、使用控制符代表回车换行。、使用控制符代表回车换行。例:例: “.” ;、一个输出语句中可以使用多个运算符、一个输出语句中可以使用多个运算符 。例:例: () “” ;注意:每输出一项要用一个注意:每输出一项要用一个 符号
7、符号 ,不能写成,不能写成 ;、用、用 和和 可以输出任何类型的数据。可以输出任何类型的数据。例:例: ; ; ; “” ”,” “” ”,” “” ;、使用指定输出所占的列数。、使用指定输出所占的列数。例:例: “” () “” () “” () 运算符配合使用,运算符配合使用, 称为称为 “提取运算符提取运算符”例:例: ; ; 输入一个整数和一个实数。不要写成:输入一个整数和一个实数。不要写成: 例例 与一起使用与一起使用 () “ :” ; ; “ “ ; “ “ ; 函数的重载函数的重载 一、运算符的重载:一个运算符用于不同的场合,一、运算符的重载:一个运算符用于不同的场合,有不同的
8、含义,如有不同的含义,如。 二、函数的重载:允许在同一作用域中用同一个函二、函数的重载:允许在同一作用域中用同一个函数名定义多个函数,这些函数的参数个数和参数类型数名定义多个函数,这些函数的参数个数和参数类型不同。不同。如:语言中,要求从个数中求最大数,需要针对三种如:语言中,要求从个数中求最大数,需要针对三种数据类型数据类型 定义三个函数,其原型为:定义三个函数,其原型为: ( ); ( ); ( );要求三个函数名不同。要求三个函数名不同。对于上面问题,可以编写程序:对于上面问题,可以编写程序:例:求三个数中最大数(分别考虑整数,实数,长整数的情例:求三个数中最大数(分别考虑整数,实数,长
9、整数的情况)况) ( , )( ) ;( ) ; ; ( , , )( ) ;( ) ; ; ( , )( ) ;( ) ; ; () ; ; ; ; ; ; ; (); ; (); ; ();” ”;例:求个数中最大数。为和。例:求个数中最大数。为和。 ( , , )( ) ;( ) ; ; ( , )( ) ; ; () ; ;(); () ;注意:重载函数的参数个数或类型必须至少有一者不同,函数的注意:重载函数的参数个数或类型必须至少有一者不同,函数的返回值可以相同,也可以不同。但不允许参数个数和类型都相同返回值可以相同,也可以不同。但不允许参数个数和类型都相同而只有返回值不同。而只有返
10、回值不同。 带缺省参数的函数带缺省参数的函数 一、在函数的形参列表中对一个或几个形参指定一、在函数的形参列表中对一个或几个形参指定缺省值。缺省值。例如:例如: ( )调用函数时,调用函数时,如果写成如果写成 (),则形参的值分别为,;,则形参的值分别为,;如果写成如果写成 (),则形参的值为,则形参的值为 ,而的值为缺省值,而的值为缺省值 二、赋予缺省值的参数必须放在形参表列的最右端。二、赋予缺省值的参数必须放在形参表列的最右端。如:如: ( ) (正确)(正确) ( ) (不正确)(不正确) 三、不要同时使用重载函数和缺省函数的函数,因为在调三、不要同时使用重载函数和缺省函数的函数,因为在调
11、用函数时少写了一个参数,系统无法确定利用重载函数还是缺用函数时少写了一个参数,系统无法确定利用重载函数还是缺省函数。省函数。如:如: ( ) . ( ) 变量的引用类型变量的引用类型一、引用的概念一、引用的概念“引用引用”是的一种新的变量类型,是对的一个重要扩是的一种新的变量类型,是对的一个重要扩充,它的作用是为一个变量起一个别名。充,它的作用是为一个变量起一个别名。如:如: ; ;、这就声明了是的引用。、这就声明了是的引用。“”“”为为“引用声明符引用声明符”,并,并不代表地址。不代表地址。、声明引用并不另辟内存单元,和都代表同一变量单、声明引用并不另辟内存单元,和都代表同一变量单元。元。、
12、在声明一个引用型变量时,必须同时对之进行初始、在声明一个引用型变量时,必须同时对之进行初始化,即声明它代表哪一个变量化,即声明它代表哪一个变量、在本函数执行期间,该引用一直与其代表的变量相、在本函数执行期间,该引用一直与其代表的变量相联系,不能作为其他变量的别名。联系,不能作为其他变量的别名。如:如: ; ; ; (企图使变量变成的引用是不行的)(企图使变量变成的引用是不行的)二、引用的简单使用二、引用的简单使用例:了解引用和变量的关系例:了解引用和变量的关系 () ; ;声明是的引用声明是的引用 *; 的值发生变化,的值同时发生变化的值发生变化,的值同时发生变化 (); ; 的值发生变化,的
13、值同时发生变化的值发生变化,的值同时发生变化 () ; 变量变量 变量变量 三、引用作为函数的参数三、引用作为函数的参数、语言中参数传递的两种形式、语言中参数传递的两种形式()变量名最为实参()变量名最为实参 例:交换两个变量的值例:交换两个变量的值 ( ) ; ; ; ; 实现值的互换实现值的互换 () ;(); “,” ; 的值并没有发生变化的值并没有发生变化()传递变量的地址()传递变量的地址 ( * *) ; * ;* *;* ; 实现值的互换实现值的互换 () ;(); “,” ; 的值发生变化的值发生变化、提供了传递变量的别名、提供了传递变量的别名 ( ) ; ; ; ; 实现值的
14、互换实现值的互换 () ;(); “,” ; 的值并没有发生变化的值并没有发生变化 内置函数内置函数 编译时将所调用函数的代码嵌入到主调函数中,编译时将所调用函数的代码嵌入到主调函数中,这种嵌入到主调函数中的函数称为内置函数,也称为这种嵌入到主调函数中的函数称为内置函数,也称为内嵌函数。内嵌函数。指定内置函数只需在函数首行的左端加上一个关键字。指定内置函数只需在函数首行的左端加上一个关键字。例:将函数指定为内置函数例:将函数指定为内置函数 ( ) ();( ); ; () ;(); “”) ;() ;说明:使用内置函数可以节省运行时间,但却增加了目标程序说明:使用内置函数可以节省运行时间,但却
15、增加了目标程序的长度。的长度。 作用域运算符作用域运算符一、作用域运算符:一、作用域运算符:: ,它指定所需要的作用域。,它指定所需要的作用域。二、每个变量都有其有效的作用域,只能在变量的作二、每个变量都有其有效的作用域,只能在变量的作用域内使用该变量,不能直接使用其它作用域中的变用域内使用该变量,不能直接使用其它作用域中的变量。量。例如:例如: ; () ; ;三、使用作用域运算符将上例进行修改:三、使用作用域运算符将上例进行修改: ; () ; ; ;说明:表示全局作用域的变量,不能用说明:表示全局作用域的变量,不能用 : 访问函数中的局部变访问函数中的局部变量。量。 动态分配撤销内存的运
16、算符和动态分配撤销内存的运算符和一、运算符使用的一般格式:一、运算符使用的一般格式: 类型(初值)类型(初值)例如例如: ; (开辟一个存放整数的空间,返回一个指向整型(开辟一个存放整数的空间,返回一个指向整型 数据的指针)数据的指针) (); (开辟一个存放整数的空间,并指定该整数的初(开辟一个存放整数的空间,并指定该整数的初 值为)值为) ; (开辟一个存放二维整型数组的空间,该数组的(开辟一个存放二维整型数组的空间,该数组的 大小为大小为*) ; (开辟一个存放字符数组的空间,该数组有个(开辟一个存放字符数组的空间,该数组有个 元素,返回一个指向字符数据的指针)元素,返回一个指向字符数据
17、的指针) * (); (开辟一个存放实数的空间,并指定(开辟一个存放实数的空间,并指定 该实数的初值为,将返回的指向实型数据的该实数的初值为,将返回的指向实型数据的 指针赋给指针变量)指针赋给指针变量)二、二、delete运算符使用的一般格式为:运算符使用的一般格式为:delete 指针变量指针变量 / 表示为数组空间的操作表示为数组空间的操作例例28 开辟空间存储一个结构体变量开辟空间存储一个结构体变量#include struct Student char name10;int num;char sex;void main()Student *p;p = new Student;strcpy(p-name,”wanqi”);p-num = 10120;p-sex = F;delete p;
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。