拿我没辙
幼苗
共回答了15个问题采纳率:93.3% 举报
#include
#include
using namespace std;
class Shape
{
public:
virtual double area() = 0;
virtual double perimeter() = 0;
};
class Circle : public Shape
{
public:
Circle(double r) : m_r(r) {}
virtual double area() = 0;
virtual double perimeter() = 0;
protected:
doublem_r;
};
class InnerSquare : public Circle
{
public:
InnerSquare(double r) : Circle(r){}
virtual double area()
{
return 2 * m_r * m_r;
}
virtual double perimeter()
{
return sqrt((double)2) * m_r * 4;
}
};
class OuterSquare : public Circle
{
public:
OuterSquare(double r) : Circle(r){}
virtual double area()
{
return 4 * m_r * m_r;
}
virtual double perimeter()
{
return 2 * m_r * 4;
}
};
int main()
{
Shape * s1, * s2;
s1 = new InnerSquare(2);
s2 = new OuterSquare(3);
cout << "area=" << s1->area() << " perimeter=" << s1->perimeter() << endl;
cout << "area=" << s2->area() << " perimeter=" << s2->perimeter() << endl;
return 0;
}
1年前
4