xiaoxuvc++.doc_第1页
xiaoxuvc++.doc_第2页
xiaoxuvc++.doc_第3页
xiaoxuvc++.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. API函数编写windows程序时的两个主要任务:写winmain()函数和写窗口处理函数winproc()2. wParam(字参数)和lParam(长字参数)用于提供消息的附加信息,随消息的不同而有所不同。3. message代表一个消息的消息值,每个windows消息都有一个消息值。该值由WINDOWS.H头文件中的宏定义来标识。4. MFC类库:五大类:应用程序类APP、框架Frame、文档Doc、视图、单多文档模板类。5. 第一章:函数:(1) 内联函数: 在调用函数时,系统要进行现场处理工作,需要占用附加的现场处理时间。若把函数体直接嵌入函数调用处,则可消除附加的现场处理的时间开销,提高程序的运行效率。 C+提供了实现上述嵌入功能的函数,这种函数称为内联(inline)函数。定义一个内联函数只需在函数头前加入关键字inline。当编译程序遇到内联函数调用语句时,需要将该内联函数的函数体替换调用语句。当然,这样将会加大代码占用内存的空间开销,因此,内联函数一般适用于代码较短的函数。内联函数与普通函数的区别和联系(1)在定义内联函数时,函数值的类型左面有“inline”关键字,而普通函数在定义时没有此关键字。(2)程序中调用内联函数与调用普通函数的方法相同。(3)当在程序中调用一个内联函数时,是将该函数的代码直接插入到调用点,然后执行该段代码,所以在调用过程中不存在程序流程的跳转和返回问题。而普通函数的调用,程序是从主调函数的调用点转去执行被调函数,待被调函数执行完毕后,再返回到主调函数的调用点的下一语句继续执行。(4)从调用机理看,内联函数可加快程序代码的执行速度和效率,但这是以增加程序代码为代价来求得速度的。对内联函数的限制应注意:不是任何一个函数都可定义成内联函数。(1)内联函数的函数体内不能含有复杂的结构控制语句,如:switch和while,如果内联函数的函数体内有这些语句,则编译将该函数视同普通函数那样产生函数调用代码。(2)递归函数不能被用来作为内联函数。(3)内联函数一般适合于只有15行语句的小函数,对一个含有很多语句的大函数,没有必要使用内联函数来实现。 (2) 重载函数:函数重载:指一组功能类似但函数参数类型(个数)不同的函数可以共用一个函数名。当C+编译器遇到重载函数的调用语句时,它能够根据不同的参数类型或不同的参数个数选择一个合适的函数运算符重载:运算符重载与函数重载的区别:同一个重载运算符的参数个数是相同的。不能定义新的运算符,只能重载现有的运算符。运算符重载后仍然保持原来的优先级和结合性。(3) 构造函数(可以重载): 构造函数是一种特殊的成员函数,它是在创建对象时(声明或new动态创建)系统自动调用的成员函数。(4) 析构函数(不可以重载): 析构函数也是一种特殊的成员函数,它是在对象生存期结束时系统自动调用的成员函数。构造函数的名称与类名相同,析构函数的名称必须在类名前加上“”符号。注意,构造函数和析构函数不能指定任何返回值类型,包括void返回类型。例 为类Time添加构造函数和析构函数。#include class Timeprivate: int hour; int minute; int second;public: Time(int, int, int);/ 构造函数 Time();/ 析构函数 . . . . . . ; 从程序的运行结果可以看出,析构函数的调用顺序一般与构造函数的调用顺序相反。 栈:后进先出表6. cin 与 cout (1)数据的输入cin 在C+程序中,数据的输入通常采用cin流对象来完成,其格式如下:cin变量名1变量名2变量名n;说明:(1)cin是系统预定义的一个标准输入设备(2)cin的功能是:当程序在运行过程中执行到cin时,程序会暂停执行并等待用户从键盘输入相应数目的数据,用户输入完数据并回车后,cin从输入流中取得相应的数据并传送给其后的变量中。(3)“”操作符后除了变量名外不得有其他数字、字符串或字符,否则系统会报错。如:cinx=x; /错误,因含有字符串x= cinxx; /错误,因含有字符x= cinx10; /错误,因含有常量10(4)cin后面所跟的变量可为任何数据类型,若变量为整型数据类型,则在程序运行过程中从键盘输入数据时,可分别按十进制、八进制或十六进制输入该整数。但要注意:当按十进制格式输入整数时,可直接输入数据本身即可; 控制符dec若以十六进制输入整数时,数据前要冠以0x或0X; 控制符hex若按八进制格式输入整数时,数据前要冠以数字0,。 控制符oct若cin后面的变量为浮点类型(单精度或双精度)时,可分别按小数或指数的格式表示该浮点数。若cin后面的变量为字符类型时,可直接输入字符数据而不能在字符的两端加单引号。(5)当程序中用cin输入数据时,最好在该语句之前用cout输出一个需要输入数据的提示信息,以正确引导和提示用户输入正确的数据。如:coutx;(6)当一个cin后面同时跟有多个变量时,则用户在输入数据时的个数应与变量的个数相同,各数据之前用一个或多个空格隔开,输入完后按回车键;或者,每输入一个数据按回车键也可7. 虚函数与纯虚函数 纯虚函数不定义具体实现的成员函数称为纯虚函数。纯虚函数不能被调用,仅起提供一个统一接口的作用。纯虚函数的声明:virtual ()= 0 ;当基类是抽象类时,只有在派生类中重新定义基类中的所有纯虚函数,该派生类才不会再成为抽象类。 纯虚函数是在基类中只声明虚函数而不给出具体的函数定义体,将它的具体定义放在各派生类中,称此虚函数为纯虚函数。通过该基类的指针或引用就可以调用所有派生类的虚函数,基类只是用于继承,仅作为一个接口,具体功能在派生类中实现。纯虚函数的声明如下:(注:要放在基类的定义体中) virtual 函数原型=0; 其中:函数原型的格式同前面所学格式一样,要包括函数返回值的类型、函数名、圆括号、形参及其类型等。 声明了纯虚函数的类,称为抽象类。使用纯虚函数时应注意:(1)抽象类中可以有多个纯虚函数。2)不能声明抽象类的对象,但可以声明指向抽象类的指针变量和引用变量。(3)抽象类也可以定义其他非纯虚函数。(4)如果派生类中没有重新定义基类中的纯虚函数,则在派生类中必须再将该虚函数声明为纯虚函数。(5)从抽象类可以派生出具体或抽象类,但不能从具体类派生出抽象类。(6)在一个复杂的类继承结构中,越上层的类抽象程度越高,有时甚至无法给出某些成员函数的实现,显然,抽象类是一种特殊的类,它一般处于类继承结构的较外层。(7)引入抽象类的目的,主要是为了能将相关类组织在一个类继承结构中,并通过抽象类来为这些相关类提供统一的操作接口。8. 引用 (1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大对象的传递效率和空间不如意的问题。(2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。(3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作,程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。9. 友元函数:C+提供了一种函数,它虽然不是一个类的成员函数,但可以象成员函数一样访问该类的所有成员,包括私有成员和保护成员。这种函数称为友元(friend)函数。一个函数要成为一个类的友元函数,需要在类的定义中声明该函数,并在函数声明的前面加上关键字friend。友元函数本身的定义没

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论