cout<<\
<<\
}
程序输出结果为:
a=200 b=30 *p=200 *q=30 ra=200
*rt=30
19.阅读以下程序,写出输出结果。 #include
class Base2 { public:
Base2( int j ) { cout << \调用基类Base2的构造函数:\ Base1( int i ) { cout << \调用基类Base1的构造函数:\
<< endl ; }
<< endl ; }
};
class A : public Base1, public Base2 { public :
A( int a, int b, int c, int d ) : Base2(b), Base1(c), b2(a), b1(d)
{ cout << \调用派生类A的构造函数:\ private : Base1 b1 ; Base2 b2 ; } ; int main()
{ A obj( 1, 2, 3, 4 ); }
【解答】
调用基类BASE1的构造函数:3 调用基类BASE2的构造函数:2 调用基类BASE1的构造函数:4 调用基类BASE2构造函数:1 调用派生类A的构造函数:10
五、编程题
1、下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函数 class shape{ public:
virtual float area( )=0; };
float total(shape *s[ ],int n) {
float sum=0.0;
for(int i=0;i
class Triangle:public Shape {
public:
Triangle(double h,double w){H=h;W=w;} double Area() const{return H*W*0.5;} private:
double H,W; };
class Rectangle:public Shape { public:
Rectangle(double h,double w){H=h;W=w;} double Area()const{return H*W;} private: double H,W; };
1. 定义一个Box(盒子)类,在该类定义中包括
数据成员: length(长)、width(宽)和height(高);
成员函数: 构造函数Box,设置盒子长、宽和高三个初始数据;用函数volume 计算并输出盒子的体积。
在main函数中,要求创建Box对象,并求盒子的体积。 【解答】
#include
BOX( double l, double w, double h )
width = w; height = h; }
void volume()
}
private: }; int main()
{ BOX box1( 1,3,5 ); box1.volume(); BOX box2( 2,4,6 ); box2.volume(); }
2.定义一个复数类complex,实现复数 “+”运算。要求用重载成员函数的形式实现两个复数的实部相加和虚部相加。完成程序的编写。
#include
//外部接口
complex(double r=0.0,double i=0.0){real=r;imag=i;} double length, width, height;
{ cout << \ { length = l;
complex operator + (complex c2); //+重载为成员函数 void display(); //输出复数 private:
//私有数据成员
double real; //复数实部 double imag;//复数虚部 };
complex complex:: operator +(complex c2) //重载函数实现 {
complex c; c.real=c2.real+real; c.imag=c2.imag+imag; return complex(c.real,c.imag); }
void complex::display()
{ cout<<\int main() //主函数
{ complex c1(5,4),c2(2,10),c3; //声明复数类的对象 cout<<\ cout<<\
c3=c1+c2; //使用重载运算符完成复数加法 cout<<\ c3.display();
}
4.定义一个Rectangle类,它包含两个数据成员length和width;以及包含用于求长方形面积的成员函数。再定义Rectangle的派生类Rectangular,它包含一个新数据成员height和用来求长方体体积的成员函数。在main函数中,使用两个类,求某个长方形的面积和某个长方体的体积。 【解答】
#include
rectangle( double l,double w ) { length = l;width = w; } double area()
{ return( length*width ); } double getlength() { return length; } double getwidth() { return width; } private: double length; double width; };
class rectangular:public rectangle { public:
rectangular( double l,double w,double h ) : rectangle( l,w ) { height = h; } double getheight()
{ return height; } double volume()
{ return area() *height; } private:
double height; }; int main()
{ rectangle obj1( 2,8 ); rectangular obj2( 3,4,5 );
cout<<\
cout<<\
cout<<\ cout<<'\\t'<<\ cout<<\}
5.定义一个时钟类Clock,实现时间前置“++”运算重载。要求用重载成员函数的形式实现时间的秒加1。完成程序的编写。
#include
//时钟类声明