面向对象程序设计含答案Word格式文档下载.docx
《面向对象程序设计含答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计含答案Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
它是应用程序中对象容器;
负责创立应用程序界面和消息循环。
(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<
iostream.h>
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;
obj3=obj1*obj2;
obj3.get(a,b,c);
cout<
<
”(obj1*obj2):
\t”<
”a=”<
a<
’\t’<
”b=”<
b<
”c=”<
c<
endl;
(obj2*obj3).get(a,b,c);
”(obj2*obj3):
运营成果:
(obj1*obj2):
a=5b=10c=15
(obj2*obj3):
a=25b=50c=75
2、#include<
classBASE1
{public:
BASE1(inti){cout<
”调用基类BASE1构造函数:
”<
i<
};
classBASE2
BASE2(intj){cout<
”调用基类BASE2构造函数:
j<
classA:
publicBASE1,publicBASE2
A(inta,intb,intc,intd):
BASE2(b),BASE1(c),b2(a),b1(d)
{cout<
”调用派生类A构造函数;
a+b+c+d<
BASE1b1;
BASE2b2;
voidmain()
{Aojb(11,22,33,44);
调用基类Base1构造函数:
33
调用基类Base2构造函数:
22
44
11
调用派生类A构造函数:
110
3、#include<
template<
typenameT>
voidfun(T&
x,T&
y)
{Ttemp;
temp=x;
x=y;
y=temp;
voidfun(doublex,inty)
{doubletemp;
{inti,j;
i=30;
j=10;
fun(i,j);
”i=”<
”j=”<
doublea,b;
a=1.23;
b=3.21;
fun(a,b);
doublem=10;
intn=30;
fun(m,n);
”m=”<
m<
”n=”<
n<
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);
x<
left);
cout.width(15);
right,ios:
showpos);
-x<
scientific);
}运营成果:
123.456123.456123.456
+123.456-123.456+1.234560e+002
5、#include<
enumBREED{GOLDEN,CAIRN,DANDIE,SHETLAND,DOBERMAN,LAB};
classMammal
//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
//Constructors
Dog():
itsBreed(GOLDEN){}
~Dog(){}
//Accessors
BREEDGetBreed()const{returnitsBreed;
voidSetBreed(BREEDbreed){itsBreed=breed;
//Othermethods
voidWagTail()const{cout<
Tailwagging...\n"
voidBegForFood()const{cout<
Beggingforfood...\n"
BREEDitsBreed;
intmain()
{Dogfido;
fido.Speak();
fido.WagTail();
cout<
Fidois"
<
fido.GetAge()<
yearsold\n"
;
return0;
Tailwagging…
Fidois2yearsold
6、#include<
classBase
{public:
voidwho(){cout<
”Baseclass”<
classDerived1:
publicBase
”Derived1class”<
classderived2:
{public:
”Derived2class”<
Voidmain()
{baseobj1,*p;
derived1obj2