应该采取什么TwoDimensionalShape类包含哪些内容?(What should the

2019-10-23 13:17发布

我想在C ++做练习多态计算的数字面积和体积诠释以下层次

                                       Shape
                 TwoDimensionalShape            ThreeDimensional

            Circle    Square   Triangle           Sphere   Cube

我宣布一个虚函数的getArea和getVolume Shape类,例如在Circle类的功能是:

double Circle::getArea() const
{
    return 3.14*radius*radius;
}

其中半径的圆圈类私有。

但我坚持什么,我应该包括在TwoDimensionalShape类一点,如果我要声明里面的变量区域。

Answer 1:

你不需要中级班里面的数据成员。 他们只是层次的抽象,为了说圆是TwoDimensionalShape。 你以后可能有一些功能回吐参考TwoDimensionalShape并在那里你可以通过CircleTriangle ,而不是任何其他非TwoDimensionalShape。

作为一个数据成员,你可以在有一些标志Shape本身。 数据成员将指定当前对象的类型。 您可以enum为相同。 这将用于静态断言和以及运行时检查。 这也有助于在无需虚函数的一些方法。



文章来源: What should the TwoDimensionalShape Class contain?