当前位置:首页 > c++ 期末复习知识点整理
基本概念:
1.c++是在20世纪80年代初期由贝尔实验室设计的一种在c语言基础上增加了对(面向对象)程序设计支持的语言。 2.include
3.一个c++程序由编译预处理指令,数据或数据结构定义和若干函数组成。 4.一个c语言程序可以包含若干函数,其中main表示主函数,每个函数的执行必须从main开始。
5.c++将数据分为基本数据类型,派生类型,符合类型 =构造类型,VC6.0不支持bool型
6.指数形式,E或(e)后面必须是整数
7.c++不支持空字符常量['']是不合法,[\是合法;endl表示换行。
8.如果需要在字符串中出现双引号,则必须用\表示。例如:\to help\
9.变量的默认类型为double
10.使用const,define表示定义标识符常量。 11.条件运算符 nNum=(a>b)? 10:8
12.size of是用于返回操作数所占的内存空间大小
13.break用于结束switch循环或从一个循环跳出。continue用于结束本次循环进入到一个循环中。
14.c++是一种面向对象的程序设计语言,它与面向过程设计方法的最大不同是引入了“类和对象”的概念,而此时函数是构造“类”成员的一种手段。 15.函数调用时,实参与形参的个数应相等,类型应一致,且按顺序对应,一一传递数据
16.在c++中,允许在函数声明或定义时给一个或多个参数指定默认值,这样在调用时,可以不给出参数,而按指定的默认值进行工作。
(1)函数既有原型声明又有定义时,默认参数只能在原型生命中指定。 (2)当一个函数中需要有多个默认参数时,则形参分配中。默认参数应严格按照,从右至左逐次指定。
(3)函数调用时,按照从左到右,实参与形参相结合,当实参数目不足时,系统将以默认值对齐。
(4)函数原型可多次声明,但一个参数的默认值只能指定一次。
默认值可以是全局变量,全局常量,甚至是一个函数,但不能是局部变量。 17.内联函数:它把函数体的代码直接插入到调用处,将调用函数的方式转换为顺序执行直接插入限制
(1)不能有数组,不能有任何静态类型
(2)不能有switch,for等复杂语句 需要在函数类型前加inline (3)不能有递归
18.函数重载:c++允许多个同名的函数存在,但同名的各个函数的形参必须有区别
使用函数重载,不仅方便记忆,更加完善了同一函数代码功能。
19.New和delete:C++中,new和delete能有效直接地进行动态内存的分配和释放。
(1)必须配对使用
(2)delete必须用于先前指的new
(3)new可以为数组分配内存,可以告诉delete有多少个元素 20.引用变量,实质上是给已定义的变量取了个别名。
引用与指针最大的区别:指针是一个变量,可以把它再赋值指向别处地址,
而引用一旦初始化后,某地址不会再改变
{注](1)定义引用时必须初始化,引用类型必须与初始化变量相同 (2)引用常量时,前面必须加const (3)可以引用结构体,但不能引用数组。 (4)引用本身不是数据类型。
21.一个类总有两种特殊的成员函数,构造函数和析构函数 构:在创建对象时,使用给定的值将对象初始化。析:是用来释放一个对象,在对象删除前用它来做一些内存释放等清理工作。
22.将一个已定义的对象所在的内存空间的内容依次拷贝到被初始化对象的内存空间中,这种仅将内存空间的内容拷贝的方式称为浅拷贝。
必须自己定义一个拷贝构造函数,在进行数值拷贝之前,为指针类型的数据成员开辟一个对立的内存空间,是深拷贝。
24友元:除一个类的成员函数可以声明成另一个类的友元外,也可以将一个类声明成另一个类的友元,称为友元类。当一个类作为另一个类的友元时,就意味着这个类的所有成员函数都是另一个类的友元成员函数。 26.This 是一个仅能被类的非静态函数所访问的特殊指针。
对于静态成员函数来讲,由于它是为所有对象所共享,因此在静态成员函数中使用this指将无法确定this的具体指向,所以在静态成员函数中不能使用this指针 27.继承和派生
派生类对象建立——基类构——派生类构——派生类析——基类析 允许派生类继承多个基类,可使派生类拥有多个基类特性
除了类的多继承外,c++还允许一个基类有多个派生类(多重派生),以及从一个基类的派生类中进行多个层次派生 32赋值运算符的重载:
(1)赋值运算符不能重载为友元函数,只能重载为一个非静态成员函数 (2)赋值运算符重载函数是唯一的一个不能被继承的运算符函数 33什么叫时间产生的消息?
在windows操作环境中,无论是系统产生的动作或是用户运行应用程序产生的动作,都称为事件产生的消息 34动态链接库
动态链接库提供了一些特定结构的函数,能被应用程序在运行过程中装入和连接且多个程序可以共享
同一个动态链接库,这样可以大大节省内存和磁盘空间,
KERNEL32.dll用来处理存储器底层功能,任务和资源管理等windows核心服务; GDI32.dll用来提供图形设备接口,管理用户界面和图形绘制包括windows元文件,位图,设备描述表和字体
USER32.dll负责窗口的管理,包括消息,菜单,光标,计时器及其他与控制窗口显示相关的一些功能 35MFC
MFC把windows编程规范中的大多数内容封装成为各种类,称为MFC程序框架,它使程序员从复杂的编程中解脱出来,提高了编程的代码效率
36VC中的MFC APPwizard能够为用户快速,高效,自动地生成一些常用的标准程序结构和编程风格的应用程序,他们被称为应用程序框架结构(单文档,多文档,基本对话框)
37.由于这些应用程序还包含了除源程序文件外的许多消息,因此VC中常将它们称为工程或项目。另外,VC是用文件夹来管理一个应用程序项目。且将项目名用作文件夹名。
38.MFCAW Debug和Release debug有相应调试信息码 R没有,但代码经
过优化,运行速度提高。
39.项目工作区窗口:classview.resourceview.fileview 40.object类是MFC提供的绝大多数类的基类
42.框架窗口可分为两类:一类是应用程序主窗口,一类是文档窗口。 45.控件的成员变量又称控件变量。分两种类型,一是用于操作的控件对象,二是用于存取的数据变量。 43.怎样设置窗口样式。 41.P159类向导
44.P172消息映射代码框架 P175创建和使用对话框 P187有模式,无模式对话框P189 P193(1)(2)(3) 28虚基类: 29多态和虚函数 30纯虚函数和抽象类 31运算符重载
23静态成员P92 96页。 25常类型const 填空题:
1.字面常量。是指能直接从字面形式判别其类型的常量又称直接量。 2用单引号将其括起来的字符称为字符常量。c++不支持字符常量。
3.#define标识符常量行尾没有分号,#defone定义的常量不是真正的标识符常量。
c++编程中,标识符常量都用const来定义而不使用#define
4。枚举常量是在由关键字enum指定的枚举型中定义的。enum一次可以定义多个标识符常量,不像const和#define每次只定义一个,
5.cin可以获得多个键盘的输入值,提取运算符“>>”可以连续写多个,每个提取运算符后面跟一个获得输入值的变量或对象。
6。输出流通过cout可以输出一个整数,实数,字符及字符串。cout中的插入运算符“<<”可以连续写多个,每个后面可以跟一个要输出的常量,变量,转义序列符及表达式等。
7.格式算oct.dec和hex能分别将输入或输出的整数转换为八进制,十进制,十六进制
8.除法运算将小数部分去掉,而不是四舍五入。
9.自动转换是将数据类型按从低到高的顺序自动进行转换。
10.“~”将二进制每位求反。0到1,1到0,\进行异或操作,相同为0,不同为1
11.“?”是c++中唯一的一个三目运算符。
12.若省略表达式e2,则默认的表达式e2的值被认为true 13.使用内联函数时需在函数的类型前面加上mline关键字。 14.重载函数必须具有不同的参数个数或不同的参数类型。 15.使用关键字extern声明的变量称为外部变量。
16.c++是用文件夹来管理一个应用程序项目的。且将项目名作为文件夹名,在此文件夹下包含源程序代码文件,项目文件,及项目工作区文件等。 17.项目工作区窗口包含3个标签页面分别是。Classview(类页面),Resource view(资源页面)和File view(文件页面)
18.Cobject类是MFC提供的绝大多数类的基类。
19.框架窗口可分为两类:一类是应用程序窗口。另一类是文档窗口。 20.用MFCAppWizard创建单文档(SDI)或多文档(MDI)应用程序时,主窗口类的源文件名分别是mainFrm.h和mainFrm.opp.
21.控件的成员变量又称为控件变量,在MFC中,控件变量分为两种类型。一是用于操作的控件对象,二是用于存取的数据变量。
22.在对话框编辑器的控件工具栏中属于静态控件的有静态文本,组框和静态图片三种。
23静态图片控件还可以用来在对话框中形成一个水平或垂直蚀刻线。 24.常见的按钮有三种类型:按键按钮,单选按钮和复选框按钮。
25按钮消息常见的只有两个:BN_clicked(单击按钮)和BN_dovbie_clickg双击按钮。
26默认时,旋转按钮控件的最小值是100,最大值是0.
27旋转按钮控件的通知消息只有一个:UDN_DELTAPOS,他是在当前控件的当前数值将要改变时向其父窗口发送的。
28.默认样式下的单选列表框一次只能选择一个项,多选列表框,一个选择几个项,而扩展多选列表框允许用鼠标拖动或其他特殊组合键进行选择,非选列表框,则不提供选择功能。
29组合框分为三类:简单组合框,下拉式组合框。下拉式列表框。 30组合框操作分为两大类:一类是对组合框中的列表进行操作,另一类是对组合框中的编辑框进行操作。
31根据滚动条的走向,可分为垂直滚动条和水平滚动条。 32.滚动条控件的默认滚动范围是0到0.
33.滑动条控件是由滑动块和可选的刻度线组成的。
34用于时间和日期的控件和组件有3个:日期时间拾取控件,日历控件,计时器。
35在常见的菜单系统中,最上面的一层水平排列的菜单称为顶层菜单,每一个顶层菜单项可以是一个简单的菜单命令。也可以是下拉菜单。在下拉菜单中的每一个菜单项也可是菜单命令或下拉菜单。这样一级一级下去可以构造出复杂的菜单系统。
36一个加速键就是一个按键或几个按键的组合,它用于激活特定的命令 简答:
1.MFC dass wozowd对话框包含5个标签页面,他们各自的意义如下: (1)messape maps(消息映射):用来添加;删除和编程处理消息的成员函数 (2)Member bariobles(成员变量):添加或删除的控件相关联的成员变量。以便与控件进行数据交换。
(3)Automation(自动化);为支持自动化的类添加属性和方法. (4)Active x Events(Activex事件):为Activex控件添加触发事件的支持。 (5)Class Info(类信息): 有关项目中类的其他信息。
2.窗口样式通常有一般(以Ws_为前缀)和扩展(以WS——Ex_为前缀)两种形式窗口样式既可以通过MFC.App Wizard来设置。也可以在主窗口或文档窗口类的Pre create Window函数中修改CREATESTRUCT结构。或调用CWnd类的成员函数。Modify styte和ModifystyleEx来更改
3.创建和使用对话框。创建并使用一个对话框通常有两种方式:一是直接创建一个基于对话框的应用程序,二是在一个应用程序中添加并创建对话框类。选择第二种方式时。使用一个对话框的一般过程往往是:(1)添加对话框资源(2)设置对话框的属性(3)添加和布局控件(4)创建对话框类(5)添加对话框代码(6)在程序中调用对话框 4控件的创建方式:
(1)在对话框模板中用编辑器指定空间。也就是说,将对话框看作控件的父窗口。
(2)编程方式,即调用MFC相应控件类的成员函数Create来创建。并在Create函数指定控件的父窗口指针。
(3)控件编程创建方法是使用各自封装的类的Create成员来创建。它的最大优点,就是能动态创建,但他涉及的编程内容比较复杂。且不能发挥对话框编辑器可视化的优点。故在一般情况下都采用第一种方法。即在对话框栏集中用编辑器指定控件 5.DDX和DDV
DDx将数据成员变量与对话类模板内的控件相连接。这样就使得数据可以在控件之间很容易地传输。而DDV用于数据的校验。例如它能自动校验数据成员变量数值的范围。并发出相应的警告。 6文档序列化概念(名解)
用户处理的数据往往需要存盘以作为永久备份。将文档类中的数据成员变量的值保存在磁盘文件中。或者将存储的文档文件中的数据读取到相应的成员变量中。这个过程称为序列化。 7.内联函数的概念:
把函数体的代码直接插入到调用出。将调用函数的方式改为顺序执行直接插入的程序代码。这样可以减少程序的执行时间。但同时增加了代码的实际长度。
8.共用体和结构体的区别:
共用体在任一时刻只有一个成员处于活动状态。且共用体变量所占内存长度等于各个成员中最长成员的长度。而结构体所占的内存长度等于各个成员的长度之和。在共用体中,各个成员所占的内存字节数各不相同。但都是从同一地址开始的。
9使用关键字typedef的好处:
一是可以按统一的命名规则定义一套类型名称体系。从而可以提高程序的移植性
二是可以将一些难以理解的冗长的数据类型名重新命名。使其变得容易理解和阅读。
10.友元概述
通常。类的死有幸。数据成员和保护型数据成员只能在类中由该类的成员函数来访问。类的对象及外部函数p能访问类的公有型成员函数。但是如果在类中用friend关键字声明一个函数。且该函数的形参中还有该类的对象形参。这个函数便可以通过形参对象或通过在函数体中定义该类对象来访问该类的任何私有和保护型数据成员。用friend声明的函数称为友元函数。 11.在windows操作系统中最主要的DLL有哪三个模块,各有什么作用? KERNEL32 DLL GDI32 DLL和 VCER32 DLL KERNEL32。用来处理存储器底层功能。任务和资源管理等。WINDOWS核心服务。GDI32用来提供图形设备接口,管理用户界面和图形识别,包括windows元文件,位图,设备描述表和字体等;而USER32负责窗口的管理包括消息;菜单,光标,计时器及其他与控制窗口显示相关的一些功能。
共分享92篇相关文档