Visual C++编程基础

上传人:hy****d 文档编号:243021447 上传时间:2024-09-14 格式:PPTX 页数:38 大小:185.82KB
返回 下载 相关 举报
Visual C++编程基础_第1页
第1页 / 共38页
Visual C++编程基础_第2页
第2页 / 共38页
Visual C++编程基础_第3页
第3页 / 共38页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2015/2/4,#,单击此处编辑母版标题样式,Visual C+,编程基础,Fondamenti di programmazione,con,Visual C +,1,C+,的注释,C+,使用两个反斜杠开始一个注释行,在两个反斜杠后的任何文字都是注释的一部分。如果需要几行的注释,则每一行都由双反斜杠开始。也可以在,C+,语句后插入注释。,还可以使用,C,语言风格的注释,这种注释可以在几行间使用。,2,预处理指令,和,C,语言一样,,C+,使用预处理器。预处理器是在编译器运行前执行的程序。,预处理器用,#include,后文件内的代码替换这个,#include,指令。我们可以使用事先定义的函数、类、变量以及其它代码元素,以减轻我们的工作量。,如果用双引号把文件名括起来,这就说明这个文件是程序的一部分。预处理器首先查看当前的目录,如果没有找到文件,会查看在,【,选项,】,对话框中的,【,路径,】,选项卡中定义的路径。每条预处理指令占一行,末尾不带分号。,3,常量,程序中有一些值是不需变化的,叫做常量。在,C+,中可以用,#define,指令告诉预处理器用字符串的值替换程序文件中的这个字符串。,最好使用,#define,指令定义一些有意义的名称,而不应该使用无意义的数字、符号、使得代码更具可读性。常量可以被重新定义为另外的值。,C+,还提供了一种更好的声明常量的方法:使用,const,声明。,采用,const,方法,可以声明常数的数据类型。,C+,会检查初始化符号的数据是否与,const,关键字后声明的数据类型一致。,Const,关键字在,C+,中有许多用途,除了声明常量,它还可以把函数的参数和函数值设为只读,使这些值不会被更改。,4,关键字,关键字是,C+,内部使用的标识符,是语言的组成部分。不能把关键字作为变量、函数名。,5,直接量,直接量是程序中的值,它是常量,虽然它们存储在内存中,但是不能访问它们的地址。每个直接量都有相应的类型,如整数类型的直接量被标记为整型。,6,语句,C+,语句是以分号结尾的用来声明、命令和计算的句子。,复合语句是由包含在大括弧中的两个以上的语句组成的一个大语句。,7,变量和数据类型,变量是内存中被命名的位置,用于存储程序中的信息。变量名和,C+,的任何标识符一样,可是任意长度,并可包括任意字母、数字和下划线。,类型的大小以字节为单位,提示这种类型能够保存的数值或字符的范围。带有,unsigned,限定符的类型只能保存非负值,带有,signed,限定符的类型能保存负值、零或正值。,匈牙利命名法,思想是变量的数据类型成为变量名称的一部分。它的变量前缀是数据类型的缩写。,数组是包含一定类型的几个元素的变量,通过数组操作符可以获取或设置数组的某个元素。通过两个方括号声明一个二维数组。,字符串是字符串类型的变量,可以用几种方式声明字符串,无论用什么方式声明,可以用指针或数组的方式来访问它们。字符串可以用,/0,结尾。,C+,是一种对类型依赖性很大的语言,编译器会进行大量的类型检查工作以确保传递给正确的参数类型和参数个数,如果能够转换类型,编译器会自动把一定的值转换为合适的类型,否则,编译器会报错。,8,为变量分配内存,堆栈是系统使用的临时存储区域,它是后进先出的数据结构,最后推入的元素,最先弹出。,堆栈主要用于函数调用。当调用函数时,各种数据被推入函数的顶部,传递给函数的参数、函数返回的值、函数中声明的局部变量等。,堆是一种相对长期的存储区域。程序用,C+,的,new,操作符分配堆,对,new,的调用分配所需的内存并返回指向内存的指针。,与堆栈不同,必须通过调用,new,明确地分配堆内存,也必须通过调用,delete,操作符明确地释放内存,堆不会自动释放内存。,如果没有,delete,释放占用的堆内存,就可能发生内存溢出。内存中没有被释放的内存块会浪费内存空间。,9,函数,函数可以看成一个模块,可以在程序中多次被调用,函数有以下几种形式。,函数可以带参数,也可以不带参数。参数是传递给函数的值,函数需要这些参数完成工作。,函数可以返回值,也可以不返回值。,10,C+,运行时库,C+,编译器提供了一个函数、常量、变量和类型的集合,叫做运行时库。在,Visual C+,2010,中包含了,C,运行时库。,除了运行时库外,,Visual C+ 2010,中包括了标准的,C+,库,它是基于,C+,模板的函数和类的库。,11,main,函数,每个,C+,程序都从执行,main,函数开始,它是程序的主体。,与其它函数一样,,main,函数也具有结果类型,如果实现声明了结果类型,则必须在函数中使用,return,语句。,12,表达式,表达式是求值的语句,如算术表达式、布尔表达式和关系表达式等。,操作符包括算术运算、逻辑和关系运算、增量和减量运算、位运算、赋值语句、,size,of,、算术条件,逗号和其它操作符。,13,控制语句,C+,的控制语句,包括循环控制、分支控制、多路分支控制、终止循环、跳出循环开始下一个循环、,go to,语句等。,14,通过,IOSTREAM,输入输出,C out,对象是指向标准,C+,I o stream,对象,通常与屏幕或屏幕上的窗口相关联,与之对应的输入流对象称为,c in t,,它指向标准输入,通常与键盘相关。在,Visual C+,中,使用插入操作符将字符串插入,c out,中,使得插入的字符串显示在命令提示符窗口中。,15,作用域,C+,程序并一定能访问所有变量、类型、常量或函数。能被访问的范围由声明所使用的作用域决定。,声明为全局作用域的项目不仅在当前代码中可以被访问,而且在程序的其它部分也能被访问。,每个函数或模块定义了自己的局部作用域。在局部作用域内声明的变量如果与全局变量同名,局部变量将屏蔽全局变量。,函数内部的大括号,内的代码,叫做子程序局部作用域。,在,C+,中还有一种类作用域,在类中声明的成员函数,数据成员、类型和嵌套类只在这个类中可以被访问。在类成员函数实现中也可以被访问。,16,指针基础,指针是一个内存地址,在大多数情况下,指针是另外一个变量的地址,是,C+,中重要的数据结构。,在赋值操作符的左边,间接量操作符*表示一个指针,在赋值操作符的右边,地址操作符,&,可以获得变量的地址,这个地址作为指针的初始值。,在,C+,中声明变量时,*与数据类型相邻,而且仅作用于离*最近的一个变量。,赋值操作符右边的,*,是指针引用操作符。除了使用指针获得变量的值,还可以使用指针改变变量的值。,17,数组和指针,C+,的指针往往和数组配合使用。事实上数组名就是一个指向数组第一个元素的指针,可以使用指针来实现数组。,18,指针和字符串,字符串可以看成一个由字符构成的数组,所以字符串变量名也是一个指针。,19,指针作为函数的参数和函数的结果,在函数中传递参数的默认方法是传值,传值过程中,函数获取了所传值的一个副本,可以根据需要改变这个复制的值,最初的数据将保持不变。,如果函数需要传递几个参数,并需要在函数中改变所传送的参数,这时,可以采用传地址方式。函数采用指针来改变原来的数据而不必考虑指针所指向地址的内容。,如果需要在函数中避免修改数据,可以使用,const,来声明参数。,指针除了可以指向普通的变量数组和字符串之外,还可以指向其它类型的变量。,和其它类型的变量一样,指针可以保存在一个数组中。,20,引用,C+,中引入一个新的变量,引用变量,引用本身不是一个独立的变量,它是指针的另一种表示方式。,引用必须初始化为一个特定的变量,并且在以后的引用中不能引用其它变量。,另一种参数传递的方法是通过引用进行传递。所传递的是一个非引用变量,用来初始化参数。,21,头文件和实现文件,在,C+,中一般把声明放在,C+,的头文件中(,H,格式),定义放在实现文件中(,CPP,格式),然后使用,include,语句包含头文件。,许多大型的,C+,程序可以划分为几个,CPP,文件,如果其中几个,CPP,文件可能包含相同的声明,这时把它们放在同一个,H,文件中将节省大量资源。,22,类的结构,C+,的类的结构被分为两个部分,第一个部分描述对象的外部视图,对应着抽象数据类型的规范说明。标识符被称为类名,关键字,private,和,public,用于定义在类中声明的标识符能否被其它程序单元引用。,这些标识符用于标识类中声明的数据结构或操作,叫做类的成员,与数据结构有关的成员叫做数据成员,与操作有关的成员叫做成员函数。,Private,和,public,称为描述这些成员在程序中的可访问性的访问控制描述符。,23,构造函数和析构函数,构造函数和析构函数是类中声明的两种特殊的成员函数。构造函数与类名同名,由类名前冠以一个符号,,它的作用是在对象被创建时使用特定的值构造对象,或者说把对象初始化为一个特定的状态,而析构函数完成对象被删除前的一些清理工作,这些工作一般与构造函数所完成的工作的目的正相反。,24,成员函数的内联实现,可以使用两种方式使在类中声明的成员函数成为内联函数。,把函数体放在类的声明中,可以在类的一个成员函数内引用在成员函数之后说明的成员名字。,用,inline,关键字进行声明,对于使用,inline,关键字实现的内联成员函数,它的声明必须出现在对它的每个调用之前。,25,成员函数和成员函数名的重载,在类中,可以声明重载函数及带有默认参数值的函数。,重载可以实现资源共享。同一个标识符可以为同一个类中的不同成员函数命名,这个名表示相似的行为,但行为的实现不一样。,26,WIN64,、,Windows.h,和,SDK,Windows 7,是基于,Windows,应用程序编程接口的,叫做,Windows,API,。,Windows 7,使用,64,位的版本,称为,Win64,。,API,是大量函数加上数字常量、宏、结构、类型和相关项的集合,可以从,C+,、,Visual Basic,、汇编语言和其它编程语言中调用这些函数。,大多数,API,定义在称为,Windows.h,的文件中,,Visual C+ 2010,编程环境中有这个文件,也可以从,Windows,平台软件开发工具包中得到它,但如果没有特殊的要求,不需要单独的,SDK,。,27,为不同的,wIN64,平台编程,不同的,64,位操作系统共用相同的,API,,意味着所有的,64,位,Windows,的程序都将具有极高的可移植性。因此,能够为,Win7,编写程序,就能为,Win8,和,Win10,编写程序,尤其在利用,MFC,时。,28,多任务和多线程,64,位,Windows,是多任务的系统,能够同时运行几个程序。多任务是抢占式的。在抢占式多任务环境中,操作系统为每个正在运行的程序分配很小的时间段,看起来就像几个程序在同时运行,实际上,每个程序都会暂时停止运行。,Windows,系统也允许在一个应用程序中执行多线程,多线程是与多任务相关的概念。大多数程序只有一个执行线程。在代码中有一条路径,每条路径轮流沿着这条路径执行。但是有些程序可以有几个单独的执行线程同时运行。如在后台打印的时候,你可以在主线程中继续其它工作。,29,事件,Windows,花费大量时间等待你的动作以便作出响应,所以这种系统也叫事件驱动系统。当用户按下一个键、移动鼠标或单击鼠标键时,电脑通知,Windows,系统已经发生了一个事件,以及事件的种类、发生的时间、发生的位置。,事件用如下三种方式产生:,通过输入设备。,通过屏幕上一些可视的对象。,来自,Windows,内部。,30,消息,当,Windows,捕获一条事件后,它会编写一条消息,把相关信息放入一个数据结构中,然后把包含数据结构的消息发送给需要消息的程序。,Windows,消息是在,Windows.h,文件中用宏定义的常数。消息常数名通常为,WM_XXX,。,Windows,把消息放入目标应用程序的消息队列中,在消息队列中所有消息都处于等待状态,直到应用程序准备处理它。,31,消息循环,应用程序通常有一段代码为消息循环。,在应用程序的消息队列中检索到,WM_QUIT,消息以前,这个循环会不断运行。当它收到,WM_QUIT,时,,Get Message,返回,false,,循环停止,这时应用程序终止。,当,Get Message,返回一条消息后,循环把它传递给,Translate Message,函数来查看这个消息是不是来自键盘,如果是来自键盘的消息,则,Translate Message,把原始键盘消息转换为,WM_CHAR,消息,,WM_CHAR,消息设计为传递有关键入字母信息,,Translate Message,不处理非键盘消息。,接下来,,Dispatch Message,函数确定应用程序中应该得到消息的窗口,并把消息发送给它,然后开始下一个循环。,32,消息处理函数,消息处理函数是用于特定消息的一些代码。收到消息的应用程序会做些什么,取决于应用程序本身。你可以编写相应的处理函数以处理消息,如果没有为这个消息编写处理函数,需要把这个消息传递给,Windows,,让,Windows,对消息进行默认处理。,Windows,首先调用你提供的处理函数,而不用,Windows,的默认方式。实际上自定义的处理函数的一些信息,将被传递给,Def Window Proc,,因此程序员提供的处理函数和,Windows,的处理函数都被调用了,你提供的处理函数都是首先被调用了。,33,绘图及设备环境,Windows,具有图形用户界面,包括菜单、工具栏、滚动条和对话框中的按钮等元素,这些元素都是被绘制出来的。,当程序第一次显示窗口时,需要第一次绘制窗口的内部或客户区。客户区是由窗口的边界、标题栏以及框架元素包围的空间。,在窗口的任何部分被破坏时,需要重新绘制。,Windows,不会保存窗口里的图像,不能自己重新绘制所有的部分,因此程序需要重新绘制窗口的内容。,在要求重新绘制时,一般由,Windows,负责绘制窗口的框架,而程序员负责绘制客户区。与客户区对应有一个,Windows,对象称为设备环境。设备环境是,Windows,的一个数据结构。包含这个区域的信息,当前背景色或区域图案、区域的无效部分等。设备环境中最重要的对象是位图,它是所绘图形的逻辑接口。,对设备环境的访问是通过,Windows,返回的句柄进行的。用于描述设备环境句柄的变量类型是,HDC,,,Windows,提供了许多种类型的句柄。每种对象都有一个相应的句柄类型。,使用设备环境句柄可以调用几百个用于在客户区绘制的,Win64 API,函数。,在,MFC,中,有许多函数是,CDC,类的成员函数,,CDC,指设备环境类。,Windows,中负责设备环境和绘制函数的部分称为图形设备接口,,GDI,是一个完整的二维控制系统,它具有设备环境、绘制函数以及测量和定位所绘制的图像的几种坐标系统。,34,坐标系,要为绘制和其它任务指定位置,需要坐标系统,,Windows,提供了八种不同的坐标系。默认的坐标系原点在窗口客户区的左上角,,x,向右为正,,y,向下为正,但没有负的坐标。,35,微软基础类库,Visual C+,已集成了微软基础类库。微软基础类库包括,C Object,类及其派生类。了解了,C Object,类及其派生类,就等于了解了,MFC,的一大半。,36,微软基础类应用程序框架,应用程序框架包含用于生成应用程序所必需的各种面向对象的组件的集合。在,Visual C+ 2010,中,微软基础类应用程序向导能方便地生成应用程序框架,然后可以在这个基础上进行进一步的编程工作。,应用程序框架包括,WinMain,函数、应用程序类、应用程序启动、成员函数、,CMainFrame,类、文档与视图类,关闭应用程序。,37,微软基础类消息映射及处理,在微软基础类里,管理消息的方式通常是这样的。当发生某个消息,这个消息进入消息队列,操作系统根据消息提供的信息决定由那个应用程序来处理,这个应用程序依照一定的方式查找应用程序中各个类的消息映射。,38,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!