2012-07-29 53 views
1

我有一个任务,我觉得很困难。任何帮助,将不胜感激。建立一个形状类广场

通过创建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))下输入时;

类打印出

Square::area 625 
Square::perimeter 100 
Square::bounding (12.5,-12.5)(-12.5,12.5)(12.5,12.5)(-12.5,-12.5) 

我想知道做依据什么分配问这个样子吧?

回答

1

不,它不需要,从需求看来你需要的Square构造函数取4点作为参数:

Square(const Point& pt1,const Point& pt2,const Point& pt3,const Point& pt4) 

广场需要四个点的顶点

,对吗?

+0

@Jay那么你的问题到底是什么? – 2012-07-29 03:06:17

+0

如果我创建我的构造函数需要4点,在main下我将不得不创建类似如下的东西:Square(25,Point(0,0),Point(0,0),Point(0,0),Point( 0,0);? – Jay 2012-07-29 03:10:02

+0

@Jay不,我会说'Square(点(-1,-1),点(-1,1),点(1,1),点(1,-1 ))''。你不需要通过边或中心的长度,只是在角落处 – 2012-07-29 03:17:36