面向对象C习题参考解答Word格式.docx
- 文档编号:17654972
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:17
- 大小:17.04KB
面向对象C习题参考解答Word格式.docx
《面向对象C习题参考解答Word格式.docx》由会员分享,可在线阅读,更多相关《面向对象C习题参考解答Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
<
"
小狗:
d.getAge()<
岁,重"
d.getWeight()<
斤。
endl;
}
4-9设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,根据坐标能计算矩形的面积。
math.h>
classRectangle
Rectangle(intxx1,intyy1,intxx2,intyy2)
x1=xx1;
y1=yy1;
x2=xx2;
y2=yy2;
floatgetArea()
returnfabs(x2-x1)*fabs(y2-y1);
intx1,y1;
intx2,y2;
Rectanglerec(0,0,10,20);
矩形面积:
rec.getArea()<
4-11定义并实现一个矩形类,有长、宽两个属性,由成员函数计算矩形的面积。
Rectangle(intl,intw)
length=l;
width=w;
returnlength*width;
intlength;
intwidth;
Rectanglerec(10,20);
4-13定义一个Circle类,有数据成员radius(半径),成员函数getArea(),计算圆的面积,构造一个Circle的对象进行测试。
constfloatPI=3.1415;
classCircle
Circle(floatr)
radius=r;
returnradius*PI*PI;
floatradius;
Circlec(5.5);
圆的面积:
c.getArea()<
4-20定义一个复数类Complex,使得下面的代码能够工作。
Complexc1(3,5);
Complexc2=4.5;
c1.add(c2);
c1.show()
;
//源程序如下:
classComplex
Complex(floatr=0.0,floati=0.0)
real=r;
image=i;
voidadd(Complexb)
real=real+b.real;
image=image+b.image;
voidshow()
cout<
real<
+"
image<
i"
floatreal;
//实部
floatimage;
//虚部
Complexc1(3,5);
Complexc2=4.5;
//相当于Complexc2(4.5);
c1.add(c2);
c1.show();
5-7定义一个Cat类,拥有静态数据成员numOfCats,记录Cat的个体数目;
静态成员函数getNumOfCats(),读取numOfCats。
设计程序测试这个类,体会静态数据成员和静态成员函数的用法。
classCat
Cat()
numOfCats++;
~Cat()
numOfCats--;
staticintgetNumOfCats()
returnnumOfCats;
staticintnumOfCats;
intCat:
:
numOfCats=0;
现在的Cat数量:
Cat:
getNumOfCats()<
Cata;
a.getNumOfCats()<
Catb;
b.getNumOfCats()<
5-14定义Boat与Car两个类,二者都有weight属性,定义二者的一个友元函数getTotalWeight(),计算二者的重量和。
classCar;
classBoat
Boat(floatw)
friendfloatgetTotalWeight(Boatb,Carc);
classCar
Car(floatw)
floatgetTotalWeight(Boatb,Carc)
returnb.weight+c.weight;
Boatboat(3500);
Carcar(1000);
船和汽车共重"
getTotalWeight(boat,car)<
公斤。
7-5定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有getArea()函数计算对象的面积。
使用Rectangle类创建一个派生类Square。
constfloatPI=3.14;
classShape
Shape(floata,floatb=0.0)
this->
a=a;
b=b;
protected:
floata,b;
classRectangle:
publicShape
Rectangle(floatl,floatw):
Shape(l,w)
returna*b;
classCircle:
Circle(floatr):
Shape(r)
returna*PI*PI;
classSquare:
publicRectangle
Square(floatl):
Rectangle(l,l)
returna*a;
Rectangler(10,20);
Circlec(5);
Squares(10);
矩形的面积:
r.getArea()<
正方形的面积:
s.getArea()<
7-6定义一个哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。
classMammal
Mammal()
ConstructingMammal."
~Mammal()
DesstructingMammal."
classDog:
publicMammal
Dog()
ConstructingDog."
~Dog()
DesstructingDog."
7-8定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员pageCount。
classDocument
Document(char*n)
strcpy(name,n);
name;
charname[50];
classBook:
publicDocument
Book(char*n,intp):
Document(n),pageCount(p)
书名:
Document:
show();
endl<
页数:
pageCount<
intpageCount;
Bookbook("
C++语言程序设计"
529);
book.show();
7-10定义一个Object类,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数,声明一个Box对象,观察构造函数与析构函数的调用顺序。
classObject
Object()
ConstructingObject."
~Object()
DestructingObject."
voidsetWeight(intw)
intgetWeight()
intweight;
classBox:
publicObject
Box()
ConstructingBox."
~Box()
DestructingBox."
voidsetHeight(inth)
height=h;
intgetHeight()
returnheight;
voidsetWidth(intw)
intgetWidth()
returnwidth;
intheight;
Boxbox;
box.setHeight(5);
box.setWidth(10);
box.setWeight(8);
盒子:
高"
box.getHeight()<
,宽"
box.getWidth()<
,重"
box.getWeight()<
8-4
classCounter
Counter(intii=0)
i=ii;
voidprint()
i="
i<
Counteroperator+(inta)
Countertemp;
temp.i=i+a;
returntemp;
inti;
Counterc;
c=c+3;
c.print();
c=c+5;
8-5
virtualvoidspeak()
MammalSpeak!
classDog:
publicMammal
DogSpeak!
d.speak();
Mammal*p=&
d;
p->
speak();
8-7
classPoint
Point(intx=0,inty=0)
X=x;
Y=y;
("
X<
"
Y<
)"
Point&
operator++()
X++;
Y++;
return*this;
Pointoperator++(int)
Pointtemp=*this;
intX,Y;
Pointp;
(++p).print();
(p++).print();
健康文档放心下载放心阅读
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象C 习题参考解答 面向 对象 习题 参考 解答