}
intmain()
{
Ma(1,2,3,4,5,6),b(1,1,1,1,1,1),c;
c=a+b;
c.show();
return0;
}
3.课本149第5题.cpp
#include
//usingnamespacestd;
classM
{
public:
M(){a[0][0]=0;a[0][1]=0;a[0][2]=0;a[1][0]=0;a[1][1]=0;a[1][2]=0;}
Moperator+(Mb);
friendostream&operator<<(ostream&,M&);
friendistream&operator>>(istream&,M&);
private:
inta[2][3];
};
MM:
:
operator+(Mb)
{
Mc;
inti,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
c.a[i][j]=a[i][j]+b.a[i][j];
returnc;
}
istream&operator>>(istream&input,M&f)
{inti,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
input>>f.a[i][j];
returninput;
}
ostream&operator<<(ostream&output,M&f)
{
inti,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
output<output<}
returnoutput;
}
intmain()
{
Ma,b,c;
cin>>a;
cin>>b;
c=a+b;
cout<return0;
}
题型2:
继承
1.用单一继承方式定义平面坐标体系下的"点"类Point,"线"类Line和"三角形"类Triangle。
Line类单一
继承Point类,另外增加第2个点坐标。
Triangle类单一继承Line类,另外增加第3个点坐标。
在主函数中定义一个三角形对象,调用成员函数求出并输出三角形的3个顶点坐标,三角形的周长和面积。
请设计这3个类:
classPoint{};
classLine{};
classTriangle{};
main()
{
Triangles1(0,0,1,1,1,0);
s1.show1();//输出s1这个三角形的3个顶点。
s1.show2();//计算并输出s1这个三角形的周长。
s1.show3();//计算并输出s1这个三角形的面积。
}
#include
#include
usingnamespacestd;
classPoint
{public:
Point(inta,intb){a1=a;a2=b;}
voiddisplay()
{cout<protected:
inta1;
inta2;
};
classLine:
publicPoint
{
public:
Line(inta,intb,intc,inte):
Point(a,b)
{
b1=c;
b2=e;
}
voidplay()
{
display();
cout<}
protected:
intb1;
intb2;
};
classTriangle:
publicLine
{
public:
intq;
Triangle(inta,intb,intc,inte,intf,intg):
Line(a,b,c,e)
{
c1=f;
c2=g;
}
voidshow1();
voidshow2();
voidshow3();
protected:
intc1;
intc2;
};
voidTriangle:
:
show1()
{cout<<"输出s1这个三角形的3个顶点"<play();
cout<}
voidTriangle:
:
show2()
{
doublel1,l2,l3;
doubleq;
cout<<"计算并输出s1这个三角形的周长"<l1=sqrt(pow((a1-b1),2)+pow((a2-b2),2));
l2=sqrt(pow((a1-c1),2)+pow((a2-c2),2));
l3=sqrt(pow((b1-c1),2)+pow((b2-c2),2));
q=l1+l2+l3;
cout<}
voidTriangle:
:
show3()
{
doubles;
doublel1,l2,l3;
doubleq;
cout<<"计算并输出s1这个三角形的面积"<l1=sqrt(pow((a1-b1),2)+pow((a2-b2),2));
l2=sqrt(pow((a1-c1),2)+pow((a2-c2),2));
l3=sqrt(pow((b1-c1),2)+pow((b2-c2),2));
q=l1+l2+l3;
q=q/2;
s=sqrt(q*(q-l1)*(q-l2)*(q-l3));
cout<
}
voidmain()
{
Triangles1(0,0,1,1,1,0);
s1.show1();//输出s1这个三角形的3个顶点。
s1.show2();//计算并输出s1这个三角形的周长。
s1.show3();//计算并输出s1这个三角形的面积。
}
2.先定义“高度类”Hight和“圆”类Circle,再由Hight和Circle多重派生出“圆柱体”类Cylinder。
在主函数中定义一个圆柱体对象,调用成员函数求出圆柱体的体积和表面积。
intmain()
{
Cylindert;
cin>>t;
t.show1();//输出体积
t.show2();//输出表面积
return0;
}
答案:
#include
#definePI3.14
classHight//定义"高度类"Hight
{
public:
Hight(doublei=0)
{
h=i;
}
protected:
doubleh;
};
classCircle//定义"圆"类Circle
{
public:
Circle(doublej=0)
{
r=j;
}
protected:
doubler;
};
classCylinder:
publicHight,publicCircle//类Cylinder
{
public:
friendistream&operator>>(istream&input,Cylinder&c);
Cylinder(doublei=0,doublej=0):
Hight(i),Circle(j){}
voidshow1();
voidshow2();
};
voidCylinder:
:
show1()
{
doublev;
v=PI*r*r*h;
//v=3.14*r*r*h;
cout<<"输出体积"<cout<}
voidCylinder:
:
show2()
{
doubles;
s=PI*r*r*2+PI*r*2*h;
//s=3.14*r*r*2+3.14*r*2*h;
cout<<"输出表面积"<cout<
}
istream&operator>>(istream&input,Cylinder&c)
{
input>>c.h>>c.r;
returninput;
}
intmain()
{
Cylindert;
cin>>t;
t.show1();//输出体积
t.show2();//输出表面积
return0;
}