我有一个任务,我觉得非常困难。任何帮助,将不胜感激。
通过创建 Shape 类 Circle、Square 和 Triangle 来构建层次结构。对于这些派生类,创建默认构造函数和构造函数,其参数可以使用正确数量的 Point 对象适当地初始化形状(即,Circle 需要一个 Point 中心和一个半径;Square 需要四个 Point 顶点,而 Triangle 需要三个 Point 顶点)。
在 main() 中,分别创建一个实例:半径为 23 的圆形、边长为 25 的正方形和边长为 10、20、30 的三角形。定义所有这些实例,使原点 (0,0 ) 在每个对象内的某处。显示来自每个对象的信息。
当我进入 main() Square s(25, Point(0,0));
class Square : public Shape
{
double sides;
Point cp;
public:
Square() : sides(0) {}
Square(double side, const Point ¢er) : sides(side), cp(center){}
void bbox()
{
Point bottomright = cp + Point(sides/2, -sides/2);
Point topleft = cp + Point(-sides/2, sides/2);
Point topright = cp + Point(sides/2, sides/2);
Point bottomleft = cp + Point(-sides/2, -sides/2);
std::cout << "Square::bounding " << bottomright << topleft << topright << bottomleft;
}
double area() {std::cout << "Square::area "; return (sides * sides);}
double circumference() {std::cout << "Square::perimeter "; return sides + sides + sides + sides;}
};
类打印出来
Square::area 625
Square::perimeter 100
Square::bounding (12.5,-12.5)(-12.5,12.5)(12.5,12.5)(-12.5,-12.5)
我想知道根据作业的要求,这看起来是否正确?