面向对象程序设计含答案.docx

上传人:b****2 文档编号:1040413 上传时间:2022-10-15 格式:DOCX 页数:10 大小:19.45KB
下载 相关 举报
面向对象程序设计含答案.docx_第1页
第1页 / 共10页
面向对象程序设计含答案.docx_第2页
第2页 / 共10页
面向对象程序设计含答案.docx_第3页
第3页 / 共10页
面向对象程序设计含答案.docx_第4页
第4页 / 共10页
面向对象程序设计含答案.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

面向对象程序设计含答案.docx

《面向对象程序设计含答案.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计含答案.docx(10页珍藏版)》请在冰豆网上搜索。

面向对象程序设计含答案.docx

面向对象程序设计含答案

一、填空题(20分)

1、__构造函数___是特殊成员函数,在创立和初始化对象时调用。

2、_静态成员____是局部于类成员,它提供一种同类对象__共享____机制。

3、运算符重载作用是使运算符可以操作自定义_类对象___,但重载后运算符原有_基本语义__不变。

4、派生类不能访问基类_私有__成员,但可以访问基类公有成员和__保护___成员。

5、具备__纯虚函数___类称为抽象类。

6、Windows应用程序是靠_消息_来驱动,其主函数重要任务是对窗口进行初始化工作和_消息循环__。

7、MFC是用消息映射表来实现消息与__消息响应函数__之间映射,MFC通过__4____个宏来声明和实现消息映射表。

8、在文档/视图构造框架中,视图类_CView__类对象用来显示数据并接受顾客操作。

文档类_CDocument__对象作用是存储和管理数据。

9、CPaintDC是_CDC__类中最惯用派生类,它只能使用在CView类_OnDraw__函数中。

10、消息WM_MOUSEMOVE消息响应函数函数名为_OnMouseMove___。

11、资源是供Windows应用程序使用特殊数据,它们驻留在硬盘上_可执行文献__中。

惯用资源有菜单、快捷键、__图标___、位图等。

12、内存中对象可以以文献形式存储在永久性存储介质中,而当应用程序再把它从永久性存储介质读入后,该对象能恢复为本来状态,则该对象称之为__永(持)久性对象___。

二、简述题(20分,每题5分)

(1)简述构成文档/视图构造应用程序框架4个MFC派生类,并说出它们功能。

答:

如果工程名称为MyPrj,则MFCAppWizard会自动创立如下4个派生类来构成

应用程序框架:

CFrame类派生类CMmainFrame、CWinApp类派生类CMyPrjApp、CDocument类派生类CMyPrjDoc和CMyPrjView。

其中,CMyPrjDoc类对象用来存储和管理应用程序中数据;CMainFrame对象与CMyPrjView对象构成了应用程序界面,CMainFrame对象只是CMyPrjView对象容器,而CMyPrjView类对象是用来显示文档与接受顾客事件;CMyPrjApp类对象是应用程序全局对象;它是应用程序中对象容器;负责创立应用程序界面和消息循环。

(2)为什么拆分窗口显示更新必要要同步?

文档类成员函数UpdateAllViews作用是什么?

答:

由于应用程序所有拆分窗口显示应当是同一种文档,因此当文档发生变化时,该文档所相应窗口固然要同步更新显示以对的地反映文档内容。

文档类成员函数UpdateAllViews作用是告知文档所相应所有窗口同步进行重绘。

(3)如何才干使控件成为窗口子窗口并且在窗口中可见?

按钮控件能创造哪三种不同形式?

答:

为了使控件成为窗口子窗口并且在窗口中可见,两个控制样式常数使所有控件都必要使用,一种是WS_CHILD,另一种是WS_VISIBLE,前者使控件成为应用程序子窗口,后者使控件可见。

在使用各种常数制定控件样式时,应当用符号"|"将其进行连接。

按钮控件能创造如下三种不同形式:

下压按钮、复选框、和单选按钮。

(4)如何把绘图工具载入设备描述环境进行绘画?

请以画笔为例写出执行环节。

答:

(1)创立画笔:

CPennewPen(style,width,color);

(2)把画笔载入DC:

CPen*oldPen=pDC->SelectObject(&newPen);

(3)按规定进行绘画

(4)恢复旧画笔pDC->SelectObject(oldPen);

三、阅读下列程序,写出执行成果。

(40分,每题5分)

1、#include

classAbc

{public:

Abc(){a=0;b=0;c=0;}

Abc(inti,intj,intk){a=i;b=j;c=k;}

voidget(int&i,int&j,int&k){i=a;j=b;k=c;}

Abcoperator*(Abcobj);

private:

inta,b,c;

};

AbcAbc:

:

operator*(Abcobj)

{Abctempobj;

tempobj.a=a*obj.a;

tempobj.b=b*obj.b;

tempobj.c=c*obj.c;

returntempobj;

}

voidmain()

{Abcobj1(1,2,3),obj2(5,5,5),obj3;

inta,b,c;

obj3=obj1*obj2;

obj3.get(a,b,c);

cout<<”(obj1*obj2):

\t”<<”a=”<

(obj2*obj3).get(a,b,c);

cout<<”(obj2*obj3):

\t”<<”a=”<

}

运营成果:

(obj1*obj2):

a=5b=10c=15

(obj2*obj3):

a=25b=50c=75

2、#include

classBASE1

{public:

BASE1(inti){cout<<”调用基类BASE1构造函数:

”<

};

classBASE2

{public:

BASE2(intj){cout<<”调用基类BASE2构造函数:

”<

};

classA:

publicBASE1,publicBASE2

{public:

A(inta,intb,intc,intd):

BASE2(b),BASE1(c),b2(a),b1(d)

{cout<<”调用派生类A构造函数;”<

private:

BASE1b1;

BASE2b2;

};

voidmain()

{Aojb(11,22,33,44);}

运营成果:

调用基类Base1构造函数:

33

调用基类Base2构造函数:

22

调用基类Base1构造函数:

44

调用基类Base1构造函数:

11

调用派生类A构造函数:

110

3、#include

template

voidfun(T&x,T&y)

{Ttemp;

temp=x;x=y;y=temp;

}

voidfun(doublex,inty)

{doubletemp;

temp=x;x=y;y=temp;

}

voidmain()

{inti,j;

i=30;j=10;

fun(i,j);

cout<<”i=”<

doublea,b;

a=1.23;b=3.21;

fun(a,b);

cout<<”a=”<

doublem=10;intn=30;

fun(m,n);

cout<<”m=”<

}

运营成果:

i=10j=30

a=3.21b=1.23

m=10n=30

4、#include

voidmain()

{doublex=123.456;

cout.width(10);

cout.setf(ios:

:

dec,ios:

:

basefield);

cout<

cout.setf(ios:

:

left);

cout<

cout.width(15);

cout.setf(ios:

:

right,ios:

:

left);

cout<

cout.setf(ios:

:

showpos);

cout<

cout<<-x<

cout.setf(ios:

:

scientific);

cout<

}运营成果:

123.456123.456123.456

+123.456-123.456+1.234560e+002

5、#include

enumBREED{GOLDEN,CAIRN,DANDIE,SHETLAND,DOBERMAN,LAB};

classMammal

{public:

//constructors

Mammal():

itsAge

(2),itsWeight(5){}

~Mammal(){}

//accessors

intGetAge()const{returnitsAge;}

voidSetAge(intage){itsAge=age;}

intGetWeight()const{returnitsWeight;}

voidSetWeight(intweight){itsWeight=weight;}

//Othermethods

voidSpeak()const{cout<<"Mammalsound!

\n";}

voidSleep()const{cout<<"shhh.I'msleeping.\n";}

protected:

intitsAge;

intitsWeight;

};

classDog:

publicMammal

{public:

//Constructors

Dog():

itsBreed(GOLDEN){}

~Dog(){}

//Accessors

BREEDGetBreed()const{returnitsBreed;}

voidSetBreed(BREEDbreed){itsBreed=breed;}

//Othermethods

voidWagTail()const{cout<<"Tailwagging...\n";}

voidBegForFood()const{cout<<"Beggingforfood...\n";}

private:

BREEDitsBreed;

};

intmain()

{Dogfido;

fido.Speak();

fido.WagTail();

cout<<"Fidois"<

return0;

}

运营成果:

Mammalsound!

Tailwagging…

Fidois2yearsold

6、#include

classBase

{public:

voidwho(){cout<<”Baseclass”<

classDerived1:

publicBase

{public:

voidwho(){cout<<”Derived1class”<

classderived2:

publicBase

{public:

voidwho(){cout<<”Derived2class”<

Voidmain()

{baseobj1,*p;derived1obj2

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

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1