




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual C+编程基础Fondamenti di programmazione con Visual C +1C+的注释C+使用两个反斜杠开始一个注释行,在两个反斜杠后的任何文字都是注释的一部分。如果需要几行的注释,则每一行都由双反斜杠开始。也可以在C+语句后插入注释。还可以使用C语言风格的注释,这种注释可以在几行间使用。2预处理指令和C语言一样,C+使用预处理器。预处理器是在编译器运行前执行的程序。预处理器用#include后文件内的代码替换这个#include指令。我们可以使用事先定义的函数、类、变量以及其它代码元素,以减轻我们的工作量。如果用双引号把文件名括起来,这就说明这个文件是程
2、序的一部分。预处理器首先查看当前的目录,如果没有找到文件,会查看在【选项】对话框中的【路径】选项卡中定义的路径。每条预处理指令占一行,末尾不带分号。3常量程序中有一些值是不需变化的,叫做常量。在C+中可以用#define指令告诉预处理器用字符串的值替换程序文件中的这个字符串。最好使用#define指令定义一些有意义的名称,而不应该使用无意义的数字、符号、使得代码更具可读性。常量可以被重新定义为另外的值。C+还提供了一种更好的声明常量的方法:使用const声明。采用const方法,可以声明常数的数据类型。C+会检查初始化符号的数据是否与const关键字后声明的数据类型一致。Const关键字在C+
3、中有许多用途,除了声明常量,它还可以把函数的参数和函数值设为只读,使这些值不会被更改。4关键字关键字是C+内部使用的标识符,是语言的组成部分。不能把关键字作为变量、函数名。5直接量直接量是程序中的值,它是常量,虽然它们存储在内存中,但是不能访问它们的地址。每个直接量都有相应的类型,如整数类型的直接量被标记为整型。6语句C+语句是以分号结尾的用来声明、命令和计算的句子。复合语句是由包含在大括弧中的两个以上的语句组成的一个大语句。7变量和数据类型变量是内存中被命名的位置,用于存储程序中的信息。变量名和C+的任何标识符一样,可是任意长度,并可包括任意字母、数字和下划线。类型的大小以字节为单位,提示这
4、种类型能够保存的数值或字符的范围。带有unsigned限定符的类型只能保存非负值,带有signed限定符的类型能保存负值、零或正值。匈牙利命名法,思想是变量的数据类型成为变量名称的一部分。它的变量前缀是数据类型的缩写。数组是包含一定类型的几个元素的变量,通过数组操作符可以获取或设置数组的某个元素。通过两个方括号声明一个二维数组。字符串是字符串类型的变量,可以用几种方式声明字符串,无论用什么方式声明,可以用指针或数组的方式来访问它们。字符串可以用/0结尾。C+是一种对类型依赖性很大的语言,编译器会进行大量的类型检查工作以确保传递给正确的参数类型和参数个数,如果能够转换类型,编译器会自动把一定的值
5、转换为合适的类型,否则,编译器会报错。8为变量分配内存堆栈是系统使用的临时存储区域,它是后进先出的数据结构,最后推入的元素,最先弹出。堆栈主要用于函数调用。当调用函数时,各种数据被推入函数的顶部传递给函数的参数、函数返回的值、函数中声明的局部变量等。堆是一种相对长期的存储区域。程序用C+的new操作符分配堆,对new的调用分配所需的内存并返回指向内存的指针。与堆栈不同,必须通过调用new明确地分配堆内存,也必须通过调用delete操作符明确地释放内存,堆不会自动释放内存。如果没有delete释放占用的堆内存,就可能发生内存溢出。内存中没有被释放的内存块会浪费内存空间。9函数函数可以看成一个模块
6、,可以在程序中多次被调用,函数有以下几种形式。函数可以带参数,也可以不带参数。参数是传递给函数的值,函数需要这些参数完成工作。函数可以返回值,也可以不返回值。10C+运行时库C+编译器提供了一个函数、常量、变量和类型的集合,叫做运行时库。在Visual C+ 2010中包含了C运行时库。除了运行时库外,Visual C+ 2010中包括了标准的C+库,它是基于C+模板的函数和类的库。11main函数每个C+程序都从执行main函数开始,它是程序的主体。与其它函数一样,main函数也具有结果类型,如果实现声明了结果类型,则必须在函数中使用return语句。12表达式表达式是求值的语句,如算术表达
7、式、布尔表达式和关系表达式等。操作符包括算术运算、逻辑和关系运算、增量和减量运算、位运算、赋值语句、size of、算术条件,逗号和其它操作符。13控制语句C+的控制语句,包括循环控制、分支控制、多路分支控制、终止循环、跳出循环开始下一个循环、go to语句等。 14通过IOSTREAM输入输出C out对象是指向标准C+ I o stream对象,通常与屏幕或屏幕上的窗口相关联,与之对应的输入流对象称为c in t,它指向标准输入,通常与键盘相关。在Visual C+中,使用插入操作符将字符串插入c out中,使得插入的字符串显示在命令提示符窗口中。15作用域C+程序并一定能访问所有变量、类
8、型、常量或函数。能被访问的范围由声明所使用的作用域决定。声明为全局作用域的项目不仅在当前代码中可以被访问,而且在程序的其它部分也能被访问。每个函数或模块定义了自己的局部作用域。在局部作用域内声明的变量如果与全局变量同名,局部变量将屏蔽全局变量。函数内部的大括号内的代码,叫做子程序局部作用域。在C+中还有一种类作用域,在类中声明的成员函数,数据成员、类型和嵌套类只在这个类中可以被访问。在类成员函数实现中也可以被访问。16指针基础指针是一个内存地址,在大多数情况下,指针是另外一个变量的地址,是C+中重要的数据结构。在赋值操作符的左边,间接量操作符*表示一个指针,在赋值操作符的右边,地址操作符&可以
9、获得变量的地址,这个地址作为指针的初始值。在C+中声明变量时,*与数据类型相邻,而且仅作用于离*最近的一个变量。赋值操作符右边的*是指针引用操作符。除了使用指针获得变量的值,还可以使用指针改变变量的值。17数组和指针C+的指针往往和数组配合使用。事实上数组名就是一个指向数组第一个元素的指针,可以使用指针来实现数组。18指针和字符串字符串可以看成一个由字符构成的数组,所以字符串变量名也是一个指针。19指针作为函数的参数和函数的结果在函数中传递参数的默认方法是传值,传值过程中,函数获取了所传值的一个副本,可以根据需要改变这个复制的值,最初的数据将保持不变。如果函数需要传递几个参数,并需要在函数中改
10、变所传送的参数,这时,可以采用传地址方式。函数采用指针来改变原来的数据而不必考虑指针所指向地址的内容。如果需要在函数中避免修改数据,可以使用const来声明参数。指针除了可以指向普通的变量数组和字符串之外,还可以指向其它类型的变量。和其它类型的变量一样,指针可以保存在一个数组中。20引用C+中引入一个新的变量引用变量,引用本身不是一个独立的变量,它是指针的另一种表示方式。引用必须初始化为一个特定的变量,并且在以后的引用中不能引用其它变量。另一种参数传递的方法是通过引用进行传递。所传递的是一个非引用变量,用来初始化参数。21头文件和实现文件在C+中一般把声明放在C+的头文件中(H格式),定义放在
11、实现文件中(CPP格式),然后使用include语句包含头文件。许多大型的C+程序可以划分为几个CPP文件,如果其中几个CPP文件可能包含相同的声明,这时把它们放在同一个H文件中将节省大量资源。22类的结构C+的类的结构被分为两个部分,第一个部分描述对象的外部视图,对应着抽象数据类型的规范说明。标识符被称为类名,关键字private和public用于定义在类中声明的标识符能否被其它程序单元引用。这些标识符用于标识类中声明的数据结构或操作,叫做类的成员,与数据结构有关的成员叫做数据成员,与操作有关的成员叫做成员函数。Private和public称为描述这些成员在程序中的可访问性的访问控制描述符。
12、23构造函数和析构函数构造函数和析构函数是类中声明的两种特殊的成员函数。构造函数与类名同名,由类名前冠以一个符号,它的作用是在对象被创建时使用特定的值构造对象,或者说把对象初始化为一个特定的状态,而析构函数完成对象被删除前的一些清理工作,这些工作一般与构造函数所完成的工作的目的正相反。24成员函数的内联实现可以使用两种方式使在类中声明的成员函数成为内联函数。把函数体放在类的声明中,可以在类的一个成员函数内引用在成员函数之后说明的成员名字。用inline关键字进行声明,对于使用inline关键字实现的内联成员函数,它的声明必须出现在对它的每个调用之前。25成员函数和成员函数名的重载在类中,可以声
13、明重载函数及带有默认参数值的函数。重载可以实现资源共享。同一个标识符可以为同一个类中的不同成员函数命名,这个名表示相似的行为,但行为的实现不一样。26WIN64、 Windows.h和SDKWindows 7是基于Windows应用程序编程接口的,叫做Windows API。Windows 7使用64位的版本,称为Win64。API是大量函数加上数字常量、宏、结构、类型和相关项的集合,可以从C+、Visual Basic、汇编语言和其它编程语言中调用这些函数。大多数API定义在称为Windows.h的文件中,Visual C+ 2010编程环境中有这个文件,也可以从Windows平台软件开发工
14、具包中得到它,但如果没有特殊的要求,不需要单独的SDK。27为不同的wIN64平台编程不同的64位操作系统共用相同的API,意味着所有的64位Windows的程序都将具有极高的可移植性。因此,能够为Win7编写程序,就能为Win8和Win10编写程序,尤其在利用MFC时。28多任务和多线程64位Windows是多任务的系统,能够同时运行几个程序。多任务是抢占式的。在抢占式多任务环境中,操作系统为每个正在运行的程序分配很小的时间段,看起来就像几个程序在同时运行,实际上,每个程序都会暂时停止运行。Windows系统也允许在一个应用程序中执行多线程,多线程是与多任务相关的概念。大多数程序只有一个执行
15、线程。在代码中有一条路径,每条路径轮流沿着这条路径执行。但是有些程序可以有几个单独的执行线程同时运行。如在后台打印的时候,你可以在主线程中继续其它工作。29事件Windows花费大量时间等待你的动作以便作出响应,所以这种系统也叫事件驱动系统。当用户按下一个键、移动鼠标或单击鼠标键时,电脑通知Windows系统已经发生了一个事件,以及事件的种类、发生的时间、发生的位置。事件用如下三种方式产生:通过输入设备。通过屏幕上一些可视的对象。来自Windows内部。30消息当Windows捕获一条事件后,它会编写一条消息,把相关信息放入一个数据结构中,然后把包含数据结构的消息发送给需要消息的程序。Wind
16、ows消息是在Windows.h文件中用宏定义的常数。消息常数名通常为WM_XXX。Windows把消息放入目标应用程序的消息队列中,在消息队列中所有消息都处于等待状态,直到应用程序准备处理它。31消息循环应用程序通常有一段代码为消息循环。在应用程序的消息队列中检索到WM_QUIT消息以前,这个循环会不断运行。当它收到WM_QUIT时,Get Message返回false,循环停止,这时应用程序终止。当Get Message返回一条消息后,循环把它传递给Translate Message函数来查看这个消息是不是来自键盘,如果是来自键盘的消息,则Translate Message把原始键盘消息转
17、换为WM_CHAR消息,WM_CHAR消息设计为传递有关键入字母信息,Translate Message不处理非键盘消息。接下来,Dispatch Message函数确定应用程序中应该得到消息的窗口,并把消息发送给它,然后开始下一个循环。32消息处理函数消息处理函数是用于特定消息的一些代码。收到消息的应用程序会做些什么,取决于应用程序本身。你可以编写相应的处理函数以处理消息,如果没有为这个消息编写处理函数,需要把这个消息传递给Windows,让Windows对消息进行默认处理。Windows首先调用你提供的处理函数,而不用Windows的默认方式。实际上自定义的处理函数的一些信息,将被传递给D
18、ef Window Proc,因此程序员提供的处理函数和Windows的处理函数都被调用了,你提供的处理函数都是首先被调用了。33绘图及设备环境Windows具有图形用户界面,包括菜单、工具栏、滚动条和对话框中的按钮等元素,这些元素都是被绘制出来的。当程序第一次显示窗口时,需要第一次绘制窗口的内部或客户区。客户区是由窗口的边界、标题栏以及框架元素包围的空间。在窗口的任何部分被破坏时,需要重新绘制。Windows不会保存窗口里的图像,不能自己重新绘制所有的部分,因此程序需要重新绘制窗口的内容。在要求重新绘制时,一般由Windows负责绘制窗口的框架,而程序员负责绘制客户区。与客户区对应有一个Windows对象称为设备环境。设备环境是Windows的一个数据结构。包含这个区域的信息,当前背景色或区域图案、区域的无效部分等。设备环境中最重要的对象是位图,它是所绘图形的逻辑接口。对设备环境的访问是通过Windows返回的句柄进行的。用于描述设备环境句柄的变量类型是HDC,Windows提供了许多种类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能药柜管理系统管理制度
- 苗木采购标准合同:版本
- 人教版小学二年级上册数学 4.2.6 乘加、乘减 课时练
- 设备买卖合同样本:机器设备买卖合同书
- 长途客车租赁合同书
- 农田灌溉井成井劳务分包合同
- 2025国内买卖合同书参考范本
- 《职位分析与描述》课件
- 《京东物流运营分析》课件
- 2025培训中心场地租赁合同协议书
- 2025-2030中国生牛肉市场销售渠道与未来盈利模式预测研究报告
- 光的干涉衍射试题及答案
- 2025至2030年中国军用仿真(软件)行业发展战略规划及投资方向研究报告
- 第14课 辽宋夏金元时期的科技与文化-2024-2025学年七年级历史下册互动课堂教学设计宝典(统编版2024)
- 装修多人合伙协议书
- 2025年广东省深圳市21校初三一模英语试题及答案
- 工商企业管理毕业论文19904
- 2025湖北随州国资本投资运营集团限公司人员招聘27人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年许昌电气职业学院单招职业技能测试题库附答案
- 废料收购合同协议模板(简版)6篇
- 患者隐私保护培训课件
评论
0/150
提交评论