我有一项任务,我发现很难。任何帮助将不胜感激。
通过创建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)
我想知道根据作业的要求,这看起来是否合适?
答案 0 :(得分:1)
不,它没有,根据要求,你需要Square
构造函数取4分作为参数:
Square(const Point& pt1,const Point& pt2,const Point& pt3,const Point& pt4)
Square需要四个Point顶点
右?