C++期末考试复习考点.docx

上传人:b****1 文档编号:2734479 上传时间:2023-05-04 格式:DOCX 页数:8 大小:19KB
下载 相关 举报
C++期末考试复习考点.docx_第1页
第1页 / 共8页
C++期末考试复习考点.docx_第2页
第2页 / 共8页
C++期末考试复习考点.docx_第3页
第3页 / 共8页
C++期末考试复习考点.docx_第4页
第4页 / 共8页
C++期末考试复习考点.docx_第5页
第5页 / 共8页
C++期末考试复习考点.docx_第6页
第6页 / 共8页
C++期末考试复习考点.docx_第7页
第7页 / 共8页
C++期末考试复习考点.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C++期末考试复习考点.docx

《C++期末考试复习考点.docx》由会员分享,可在线阅读,更多相关《C++期末考试复习考点.docx(8页珍藏版)》请在冰点文库上搜索。

C++期末考试复习考点.docx

C++期末考试复习考点

C++期末考试复习考点

1、试简单的叙述基于API与MFC编写程序的各自结构特点和区别(可以写出简单程序代码加以说明)。

答:

API是一套用来控制windows的各个部件的外观和行为的一套预先定义的Windows函数,用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。

MFC,微软基础类,实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。

MFC以面向对象的方式封装了API函数库,用类的形式构成了一个框架并把一些常用的功能,例如默认消息处理、窗口创建等实现了。

用户使用MFC时不用面对条目众多的API函数,使得编程更加简单方便。

2、一个windows应用程序的最基本构成应有哪些部分?

什么是MFC,使用MFC有什么好处?

MFC与Windows应用程序是什么关系?

(可写部分代码说明)

答:

一个Windows应用程序最基本构成由入口函数WinMain,窗口函数WndProc组成,并包含各种数据类型,数据结构和函数。

MFC是微软基本类库,实际上是微软提供的,用于C++环境下编写应用程序的一个框架和引擎。

它将传统的API进行了封装,并且创建了程序了一般框架,你只要随便添加几行代码,就能形成你自己的程序。

MFC是一个windows应用程序框架,它定义了应用程序的结构,并实现了标准的用户接口。

等等

3、类的构造函数与析构函数各自的特点以及联系和区别?

答:

构造函数与类名相同,没有返回值,参数可有可无,可以被重载,一个类至少有一个构造函数,没有显示意义,系统调用自动生成的构造函数,它的功能是在定义对象时被编译系统自动调用来创建对象,并初始化对象,且被定义为公有成员;析构函数也被定义为公有成员,函数名是类名前加“~”构成,没有返回值,不能有参数,不能被重载,一个类必须且只能有一个析构函数。

它的功能是当对象的生存期即将结束时,由编译系统自动调用来完成一些清理工作。

没有显示定义析构函数,则系统调用自动生成的析构函数。

4、类的静态数据成员如何被声明和初始化(写一个简单的例子来表达一下),以及类的静态成员函数和类的非static成员函数的使用方式的特点。

答:

类的静态数据成员如何被声明和初始化如下例所示:

staticintm_line;

intCshape:

:

m_line=8;(Cshape为包含m_line的类)

类的静态成员函数调用格式为<类名>:

:

<静态成员函数>,其在类外定义与非静态成员函数一样。

但是静态成员函数可以直接访问类的静态数据成员和静态成员函数,但不能直接调用类中的非静态成员,如果要使用,可以通过对象来调用。

而非静态成员函数可以直接访问类中的所有成员。

5、阐述public、protected、private这三种继承方式,其各自派生类以及派生对象对基类成员的访问情况。

答:

①公有继承:

基类的public、protected、private成员的访问在派生类中不变。

派生类中的成员函数可以直接访问基类的public和protected成员,但不能直接访问基类的private成员,通过派生类的对象只能访问从基类继承的public成员。

②私有继承:

基类的所有成员都以private身份出现在派生类中,但基类的private成员不可直接访问,派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员,通过派生类的对象不能直接访问基类的如何成员。

③保护继承:

基类的public和protected成员都可以以protected身份出现在派生类中,基类的private成员保持其访问控制属性不变,但基类的private成员不可直接被访问,派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类中的private成员,通过派生类的对象不能直接访问基类中的任何成员。

6、C++多态的运行期绑定(后期绑定)的实现需要具备哪些前提条件?

写一个简单的抽象基类。

答:

第一定义虚函数,第二通过对象指针或者对象引用来调用虚函数,当然这都是基于继承派生的,没有继承派生定义虚函数没有意义。

例子:

ClassAbstract

{

Public:

Virtualvoiddisplay()=0;

}

7、假设有一个类test,请为这个类设计一个拷贝构造函数(或复制构造函数)的原型,给出代码示例,并列举三种不同方式的构造函数调用情况。

答:

拷贝构造函数有以下三种调用方式:

①用一个已经定义过的类对象去初始化一个新定义的类对象时;②函数调用中,传递的参数为类对象时;③函数调用中,返回一个类对象时。

8、阐述C++中函数默认参数的使用规则,并给出简单代码示例。

答:

①函数在定义时可以预先声明默认形参值

②默认形参值必须按照从右到左的顺序声明

③默认形参值必须在函数原型中给出

9、试解释#include和#include”myfile.h”的区别。

答:

#include指令也称为文件包含指令,其作用是将原文件嵌入到当前文件中该点处,通常用#include指令来嵌入文件。

文件包含指令有两种格式:

#include<文件名>和#include“文件名”。

#include表示按照标准方式搜索,文件位于C++系统的include子目录下。

#include“myfile.h”表示首先在当前目录中搜索,若没有,再按照标准方式搜索。

10、试简述如何调试VC和C++程序。

11、举例说明static关键字的用法及特点。

12、试用代码说明如何进行抽象类定义。

答:

抽象基类不能被实例化,其可以用来指明某些必须被派生类覆盖的虚函数,这样就可以让一些类具有共同的接口,它们都是继承于某个抽象基类的。

classAbstract

{

Public:

Virtualvoiddisplay()=0;

}

13、什么是面向对象,C++如何实现面向对象的。

答:

定义——面向对象是专指程序设计中采用封装、继承、抽象等设计方法

实现——将数据及对数据的操作方法放在一起,作为一个相互依存不可分离的整体—对象,对同类型对象抽象出共性,形成类。

类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通行。

14、什么是虚函数?

如何使用虚函数?

答:

虚函数是动态绑定的基础,是非静态的成员函数。

在类的声明中,在函数原型之前写virtual。

virtual只用来说明类声明中的原型,不能用在函数实现时。

虚函数有继承性,基类中声明了虚函数,派生类中无论是否说明,同原型函数都自动为虚函数。

它的本质不是重载而是覆盖。

调用方式:

通过基类指针或者引用,执行时会根据指针指向的对象的类,决定调用哪个函数。

15、什么是函数重载?

举例说明。

答:

所谓函数重载是指一个函数名可以对应着多个函数的实现。

每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。

这就是函数重载的概念,函数重载在类与对象中应用尤其重要。

16、什么是VC?

VC和MFC有什么关系?

答:

①VC是一个IDE集成开发环境,使用C++的一个开发平台,也可称为可视化的C++语言的开发工具。

②MFC是随着微软VC开发工具宣布的类库,用于在C++环境下编写应用程序的一个框架和引擎。

17、请说明在循环中使用break和continue语句的区别。

答:

Break使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。

不宜用在别处。

Continue语句结束本次循环,接着判断是否执行下一次循环。

18、试比较局部变量(自动变量)、静态变量、全局变量的区别。

19、描述函数重载的规则,并举例说明。

答:

函数重载规则——函数定义中必须使用不同数量的形参,或者使用不同类型的形参或同时满足这两个条件。

20、请简要说明模板函数和回调函数。

答:

所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表?

这个通用函数就称为模板函数?

函数模板有模板前缀template

回调函数,顾名思义,就是使用者自己定义一个函数,使用者自己实现这个函数的程序内容,然后把这个函数作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数。

函数是你实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。

简单来说,就是由别人的函数运行期间来回调你实现的函数。

21、操作系统将程序装入内存后,将形成一个进程空间,该空间分为哪四个区域?

其中静态局部量位于哪个区域?

22、简述windows窗口程序的基本工作机制和流程。

答:

1、调用CWinApp的构造函数

2、程序入口函数WinMain接受控制

3、WinMain调用应用程序类的函数InitInstance函数

4、WinMain进入消息循环,处理相应消息

5、WinMain退出,程序终止

23、面向对象的程序设计有哪些优点?

答:

以面向对象为核心的程序设计思想,将数据结构和操作数据的函数封装在一起。

程序的开发效率高,编写的程序代码具有较高的可重用性。

由于编写的程序代码少,并具有良好的封装性,因此开发的程序自然易于维护。

24、一个C++程序一般由哪几个部分组成?

答:

包含的系统头文件;包含的自定义头文件;主函数;自定义函数。

25、使用VisualC++编写C++程序时一般要经过哪几个步骤?

每个步骤的作用是什么?

相应的产生哪些文件?

答:

编辑(edit)cpp

编译(Compile)obj

链接(link)exe

执行(Run)

 

MFC画图

1、画点

COLORREFSetPixel(POINTpoint,COLORREFcrColor);

其中参数point指定所绘制的点,crColor指定画点所用的颜色。

倘若要在屏幕的(100,100)处画一个红色点,则代码为:

pDC->SetPixel(CPoint(100,100),RGB(255,0,0));

2、画折线

BOOLPolyline(LPPOINTlpPoints,intnCount);

其中lpPoints是指向折线顶点数组的指针,而cCount则指定折线顶点数组中的顶点数目。

POINTpolyline[4]={{240,240},{80,120},{240,120},{80,240}};

pDC->Polyline(polyline,4);

3、画矩形

BOOLRectangle(intx1,inty1,intx2,inty2);

BOOLRectangle(LPCRECTlpRect);

此函数成功调用后返回非0值,否则返回0。

其中参数(x1,y1)为指定矩形的左上角逻辑x与y坐标;(x2,y2)为指定矩形右下角的逻辑x与y坐标。

参数LpRect为一个矩形结构的指针,用它来表示矩形的四个角。

pDC->Rectangle(390,110,600,230);

4、画椭圆或圆(圆是特殊的椭圆)

BOOLEllipse(intx1,inty1,intx2,inty2);

BOOLEllipse(LPCRECTlpRect);

这两个函数画椭圆成功后返回非0值,否则返回0。

所画椭圆高度为y2-y1,宽度为x2-x1。

在该函数中,椭圆是由其外接矩形来确定的。

外接矩形的中心与椭圆中心重合,矩形的长和宽和椭圆的长短轴相等。

函数中的参数与画矩形的相仿,分别表示椭圆外接矩形的左上角和右下角坐标。

pDC->Ellipse(80,260,280,380);

5、画圆角矩形

BOOLRoundRect(intx1,inty1,intx2,inty2,intx3,inty3);

该函数用于绘制一个圆角矩形,并用当前的画刷来填充该圆角矩形的内部区域。

其中参数(x1,y1)为指定矩形的左上角位置x与y坐标;(x2,y2)为指定矩形右下角位置x与y坐标,(x3,y3)用于定义矩形四个角上的边角内切椭圆的宽度和高度,值越大,圆角矩形的角就越明显。

如果x3=x2-x1,并且y3=y2-y1,则所绘制的圆角矩形变为一个椭圆。

6、画多边形

POINTpolygon[3]={{380,330},{530,260},{500,360}};

pDC->Polygon(polygon,3);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2