(5) ;//给name初始化 cout<<\}
~ Person ( )
{ (6) ;//释放内存空间 cout<<\}
void show( ); private:
char *name; };
void Person::show( ) {cout< {Person student1(\ (7) .show( ); } 11、定义一个Point类,由它公有派生出矩形类Rectangle和圆类Circle,计算各派生类对象的面积。 #include double y; public: Point(double a,double b){x=a; (8) ;} }; class Rectangle: (9) {public: square(double a,double b): (10) { } void area(); }; void Rectangle ::area( ) { cout<<\ (11) < Circle (double a,double b,double c): (12) { r=c;} void area(); private: double r; }; void Circle ::area( ) { cout<<\ (13) < 6 void main( ) { Rectangle r(5.5,6.0); Circle c(0,0,5.0); r.area( ); c.area( ); } 12、利用友元函数实现比较两个点离原点的距离。 #include Point(double xx,double yy) { (14) ; (15) ;} void Getxy( ) ; (16) int compare(Point &a, Point &b); private: double x,y; } ; void (17) Getxy( ) {cout<<\ int compare(Point &a, Point &b)//若a比b更近,则返回0,否则返回1 { (18) ; double db=b.x*b.x+b.y*b.y ; return (19) ; } void main( ) { Point p1(1.0,3.0),p2(2.0,4.0); cout<<\ cout<<\ int d= (20) ; if(!d) cout<<\ else cout<<\ } 13、此程序的功能是求Fibonacci 数列前40个数,请填空。 #include (1) ; for(i=1;i<=20;i++) {cout< 7 (3) ;} } 14、此程序的功能是:构造一个类Box,含有3个数据成员,分别表示盒子的3条边长,还有一个成员函数,用来计算盒子的体积,请给程序填空。 #include double line,width,height; double volume; public: Box(double a, double b, double c); void vol( ); }; (4) (double a, double b, double c) { line=a;width=b;height=c; (5) ; } void Box::vol( ) { cout< { Box x(3.4, 4.5, 8.3),y(2.0, 4.0, 6.0); x.vol( ); y.vol( ); } 15、下列程序是有一个基类figure,派生两个square和isosceles_triangle,让每一个派生类都定义一个函数area(),分别用来显示矩形与等腰三角形的面积,请给程序填空。 请给程序填空。 #include double height, width; }; class square: (7) {public: square(double h,double w); void area(); }; class isosceles_triangle: (8) {public: isosceles_triangle(double h,double w); void area(); }; square::square(double h,double w){height=h;width=w;} void square::area() {cout<<\ (9) < 8 isosceles_triangle::isosceles_triangle(double h,double w) {height=h;width=w;} void isosceles_triangle::area() {cout<<\ (10) < { square s(10.0,6.0); isosceles_triangle i(8.0,6.0); s.area();i.area(); } 16、有一个向量Vector,包括一个点的坐标位置x和y,设计两个友元函数add() 和sub(),实现两个向量的加法和减法,请填空。 #include Vector(){} Vector( (11) ) {x=i;y=j;} void disp() {cout<<\ (12) (Vector &v1,Vector &v2) {Vector v; v.x=v1.x+v2.x; (13) ; return v; } (14) (Vector &v1,Vector &v2) {Vector v; (15) ; v.y=v1.y-v2.y; return v; } }; void main() {Vector v1(10,20),v2(4,5),v3; v3=add(v1,v2); cout<<\ cout<<\v3.disp();cout< v1.disp();cout<<\} 17、下列程序对复数类Complex的减法进行运算符的重载,请填空。 #include 9 {private: double real; double imag; public: Complex(){ (16) } Complex(double r,double i) { (17) } friend Complex operator-(Complex &c1,Complex &c2); void display(); }; (18) (Complex &c1,Complex &c2) { (19) ; c.real=c1.real-c2.real; c.imag=c1.imag-c2.imag; (20) ; } 18、下列程序求解矩形两条对角线的元素之和。 #include int i,j,sum1,sum2; int a[][4]={43,54,32,5,46,98,74,24,39,58,46,25,81,42,67,20}; sum1=0; (1) ; for(i=0;i<4;i++) for(j=0;j<4;j++) { if( (2) ) sum1+=a[i][j]; if( (3 ) sum2+=a[i][j]; } cout< 19、完成下面类的定义: #include Student(char *,int,float); 10