Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
二维形状类应该包含什么? 我试图用C++中的多态性来计算以下层次< < /P>中的图形的面积和体积 Shape TwoDimensionalShape ThreeDimensional Circle Square Triangle Sphere Cube_C++_Oop_Polymorphism - Fatal编程技术网

二维形状类应该包含什么? 我试图用C++中的多态性来计算以下层次< < /P>中的图形的面积和体积 Shape TwoDimensionalShape ThreeDimensional Circle Square Triangle Sphere Cube

二维形状类应该包含什么? 我试图用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类中包含什么,以及是否应该在其中声明一个变量区域。在中间级别的类中不需要数据成员。他们只是为了层次抽象,为了说圆是一个二维形状。稍后,您可能会有一些函数引用二维形状,

我在Shape类中声明了一个虚拟函数getArea和getVolume,例如在Circle类中,函数是:

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测度为零。(我希望他不要从不可测量的集合开始,它们几乎不符合形状。)