gpt4 book ai didi

c++ - TwoDimensionalShape 类应该包含什么?

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:57 25 4
gpt4 key购买 nike

我正在尝试使用 C++ 中的多态性进行练习,以计算以下层次结构中图形的面积和体积

                                       Shape
TwoDimensionalShape ThreeDimensional

Circle Square Triangle Sphere Cube

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

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

其中 radius 在 circle 类中是私有(private)的。

但我对我应该在 TwoDimensionalShape 类中包含什么以及是否应该在其中声明一个变量区域有些困惑。

最佳答案

您不需要中间级别类中的数据成员。它们只是用于层次抽象,以便说 Circle 是一个 TwoDimensionalShape。您稍后可能会有一些引用 TwoDimensionalShape 的函数,您可以在其中传递 CircleTriangle,但不能传递任何其他非 TwoDimensionalShape。

作为数据成员,您可以在 Shape 本身中设置一些标志。数据成员将指定当前对象的类型。您可以使用 enum 来实现相同的目的。这将用于静态断言和运行时检查。这在某些方面也可能有帮助,而不需要虚拟功能。

关于c++ - TwoDimensionalShape 类应该包含什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31074801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com