预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

系领导审批并署名A/B卷广州大学2023~2023学年第一学期考试卷课程面向对象程序设计考试形式(闭卷,考试)学院系专业班级学号姓名题次一二三四五六七八九十总分评卷人分数20204020100评分填空题(20分)_____是特殊的成员函数,在对象作用域结束时自动调用。友元关系是非传递的和_____,除非特别声明,否则,通常情况下若F是A的友元,A_____F的友元。运算符函数既可以重载为___函数,也可以重载为友元函数。在具有继承关系的类层次结构中,构造函数的执行顺序是:___、___、。具有纯虚函数的类称为_____。Windows应用程序的主窗口一般都是__类的派生类,而窗口函数则被封装到___类中。MFC是用消息映射表来实现消息与___之间的映射的,MFC通过_____个宏来声明和实现消息映射表。MFC采用结构来实现数据和数据显示的分离。应用程序的数据是由文档类__对象来存储和管理。CPaintDC是___类中最常用的派生类,它只能使用在___类的OnDraw函数中。消息的消息响应函数的函数名为OnMouseMove。是供Windows应用程序使用的特殊数据,它们驻留在硬盘上的可执行文献中。常用的资源有、快捷键、图标、位图等。____就是指应用程序把数据对象以文献的形式写入永久性存储体后,应用程序还能从永久性存储体来读取它,并且可以依据该文献在内存中重新创建该对象的机制。。二、简述题(20分,每题5分)(1)Windows应用程序的主函数有哪3个重要任务?什么是消息循环?(2)简述文档/视图结构中文档类和视图类的作用。并说明在文档/视图结构的应用程序中,视图类的对象是如何来获取文档类对象中的数据的。(3)应用程序的界面有哪三种方式?分别说明该界面应用程序的外观。(4)鼠标消息分为哪两类?它们之间有什么区别?三、阅读下列程序,写出执行结果。(40分,每题5分)1、#include<iostream.h>classcounter{public:voidsetnum(inti){num=i;}voidshownum(){cout<<num<<'\t';}staticintnum;};intcounter::num=1;voidmain(){inti;for(i=0;i<5;i++){counter::num+=i;cout<<counter::num<<'\t';}cout<<endl;}2、#include<iostream.h>classA{public:A(){a=5;}voidprinta(){cout<<"A:a="<<a<<endl;}private:inta;friendclassB;};classB{public:voiddisplay1(At){t.a++;cout<<"display1:a="<<t.a<<endl;}voiddisplay2(At){t.a--;cout<<"display2:a="<<t.a<<endl;}};voidmain(){Aobj1;Bobj2;obj1.printa();obj2.display1(obj1);obj2.display2(obj1);obj1.printa();}3、#include<iostream.h>template<typenameT>classbase{public:base(Ti,Tj){x=i;y=j;}Tsum(){returnx+y;}private:Tx,y;};voidmain(){base<double>obj2(3.3,5.5);cout<<obj2.sum()<<endl;base<int>obj1(3,5);cout<<obj1.sum()<<endl;}4、#include<iostream.h>classBase{public:voidabc(){cout<<"Baseclass"<<endl;};};classDerived1:publicBase{public:voidabc(){cout<<"Derived1class"<<endl;};};classDerived2:publicBase{public:voidabc(){cout<<"Derived2class"<<endl;};};voidmain(){Baseobj1,*p;Derived1obj2;Derived2obj3;p=&obj1;p->abc();p=&obj2;p->abc();p=&obj3;p->abc();obj1.abc();obj2.abc();obj3.abc();}5、#include<iostream.h>classparent_class{intprivate1,private2;public:parent_class(intp1,