1·问题
2·我的回答
#include<iostream>
#include<cmath>
using namespace std;
class RECT
{
private:
double x;
double y;
public:
RECT(double x1, double y1)
{
x = x1;
y = y1;
}
virtual double area()
{
return x * y;
}
double peri()
{
return 2 * (x + y);
}
virtual int isSquare()
{
if (x == y)
{
return 1;
}
else
{
return 0;
}
}
};
class CUB :public RECT
{
private:
double height;
public:
CUB(double x1, double y1, double h) :RECT(x1,y1)
{
height = h;
}
double volume()
{
double s;
s = RECT::area();
return height * s;
}
double area()
{
return(2 * RECT::area() + RECT::peri() * height);
}
int isSquare()
{
if (RECT::isSquare() == 1)
{
if (sqrt(RECT::area()) == height)
{
return 1;
}
else
{
return 0;
}
}
else
{
return 0;
}
}
};
int main()
{
CUB cu(2,2,2);
RECT* re;
re = &cu;
cout << cu.volume() << endl;
cout << re->area() << endl;
cout << re->isSquare() << endl;
return 0;
}