题目
1、 形状(一)
编写C++程序完成以下功能:
(1) 声明一个基类Shape(形状),其中包含一个方法来计算面积;
(2) 从Shape派生两个类矩形和圆形;
(3) 从矩形派生正方形;
(4) 分别实现派生类构造函数、析构函数和其他方法;
(5) 创建派生类的对象,观察构造函数、析构函数调用次序;
(6) 不同对象计算面积。
我的代码
#include<iostream>
#define PI 3.14
using namespace std;
class shape
{
public:
double area()//面积函数
{}
};
class rectangle:public shape
{
private:
double L,R;//长,宽
public:
double area()
{
return L*R;
}
rectangle(double L_,double R_)//构造和析构
{
cout<<"constructing derived class\n";
L=L_;
R=R_;
}
~rectangle()
{
cout<<"destructing derived class\n";
}
};
class circle:public shape
{
private:
double r;//半径
public:
double area()
{
return PI*r*r;
}
circle(double r_)//构造和析构
{
cout<<"constructing derived class\n";
r=r_;
}
~circle()
{
cout<<"destructing derived class\n";
}
};
class square:public rectangle
{
private:
double a;//长,宽
public:
double area()
{
return a*a;
}
square(double a_)//构造和析构
{
cout<<"constructing derived class\n";
a=a_;
~square()
{
cout<<"destructing derived class\n";
}
};
main()
{
double L,R,r,a;
cout<<"请输入矩形的长和宽:";
cin>>L>>R;
cout<<endl;
cout<<"请输入圆的半径:";
cin>>r;
cout<<endl;
cout<<"请输入正方形的边长:";
cin>>a;
cout<<endl;
rectangle rect(L,R);
circle circ(r);
square squa(a);
cout<<"矩形的面积是 "<<rect.area()<<endl;
cout<<"圆的面积是 "<<circ.area()<<endl;
cout<<"正方形的面积是 "<<squa.area()<<endl;
system("pause");
retuen 0;
}
1、 形状(一)
编写C++程序完成以下功能:
(1) 声明一个基类Shape(形状),其中包含一个方法来计算面积;
(2) 从Shape派生两个类矩形和圆形;
(3) 从矩形派生正方形;
(4) 分别实现派生类构造函数、析构函数和其他方法;
(5) 创建派生类的对象,观察构造函数、析构函数调用次序;
(6) 不同对象计算面积。
我的代码
#include<iostream>
#define PI 3.14
using namespace std;
class shape
{
public:
double area()//面积函数
{}
};
class rectangle:public shape
{
private:
double L,R;//长,宽
public:
double area()
{
return L*R;
}
rectangle(double L_,double R_)//构造和析构
{
cout<<"constructing derived class\n";
L=L_;
R=R_;
}
~rectangle()
{
cout<<"destructing derived class\n";
}
};
class circle:public shape
{
private:
double r;//半径
public:
double area()
{
return PI*r*r;
}
circle(double r_)//构造和析构
{
cout<<"constructing derived class\n";
r=r_;
}
~circle()
{
cout<<"destructing derived class\n";
}
};
class square:public rectangle
{
private:
double a;//长,宽
public:
double area()
{
return a*a;
}
square(double a_)//构造和析构
{
cout<<"constructing derived class\n";
a=a_;
~square()
{
cout<<"destructing derived class\n";
}
};
main()
{
double L,R,r,a;
cout<<"请输入矩形的长和宽:";
cin>>L>>R;
cout<<endl;
cout<<"请输入圆的半径:";
cin>>r;
cout<<endl;
cout<<"请输入正方形的边长:";
cin>>a;
cout<<endl;
rectangle rect(L,R);
circle circ(r);
square squa(a);
cout<<"矩形的面积是 "<<rect.area()<<endl;
cout<<"圆的面积是 "<<circ.area()<<endl;
cout<<"正方形的面积是 "<<squa.area()<<endl;
system("pause");
retuen 0;
}
