二维形状类应该包含什么? 我试图用C++中的多态性来计算以下层次< < /P>中的图形的面积和体积 Shape TwoDimensionalShape ThreeDimensional Circle Square Triangle Sphere Cube
我在Shape类中声明了一个虚拟函数getArea和getVolume,例如在Circle类中,函数是:二维形状类应该包含什么? 我试图用C++中的多态性来计算以下层次< < /P>中的图形的面积和体积 Shape TwoDimensionalShape ThreeDimensional Circle Square Triangle Sphere Cube,c++,oop,polymorphism,C++,Oop,Polymorphism,我在Shape类中声明了一个虚拟函数getArea和getVolume,例如在Circle类中,函数是: double Circle::getArea() const { return 3.14*radius*radius; } 其中半径在circle类中是私有的 但是我有点困惑,我应该在TwomensionalShape类中包含什么,以及是否应该在其中声明一个变量区域。在中间级别的类中不需要数据成员。他们只是为了层次抽象,为了说圆是一个二维形状。稍后,您可能会有一些函数引用二维形状,
double Circle::getArea() const
{
return 3.14*radius*radius;
}
其中半径在circle类中是私有的
但是我有点困惑,我应该在TwomensionalShape类中包含什么,以及是否应该在其中声明一个变量区域。在中间级别的类中不需要数据成员。他们只是为了层次抽象,为了说圆是一个二维形状。稍后,您可能会有一些函数引用
二维形状
,可以通过圆
或三角形
,但不能通过任何其他非二维形状
作为数据成员,您可以在
Shape
本身中设置一些标志。数据成员将指定当前对象的类型。您可以使用enum
进行相同的操作。这将用于静态断言和运行时检查。这也可能在某些方面有所帮助,而不需要虚拟功能 在中级类中不需要数据成员。他们只是为了层次抽象,为了说圆是一个二维形状。稍后,您可能会有一些函数引用二维形状
,可以通过圆
或三角形
,但不能通过任何其他非二维形状
作为数据成员,您可以在
Shape
本身中设置一些标志。数据成员将指定当前对象的类型。您可以使用enum
进行相同的操作。这将用于静态断言和运行时检查。这也可能在某些方面有所帮助,而不需要虚拟功能 二维形状的体积是多少?体积将用于类中的球体和立方体类ThreeDimensional@juanchopanza零,因为二维子流形的R^3-Lebesgue测度为零。(我希望他不要从不可测量的集合开始,它们在我看来几乎不符合形状要求。)2D形状的体积是多少?体积将用于类中的球体和立方体类ThreeDimensional@juanchopanza零,因为二维子流形的R^3-Lebesgue测度为零。(我希望他不要从不可测量的集合开始,它们几乎不符合形状。)