【发布时间】:2018-04-26 12:05:05
【问题描述】:
我是面向对象编程的新手,在如何最好地编写类方面有点挣扎。
我试图将排序的概念抽象为不仅仅是数字列表的对象。我有一个抽象基类SortableContainer,它包含用于比较和交换元素的所有必要虚函数,以及一些重载运算符。然后我有两个派生出来的类,MVector 和CoordinateArray。这两个派生类对基类中的所有虚函数都有适当的定义。到目前为止,一切都运行良好。 MVector 只存储类似向量的对象,CoordinateArray 存储坐标向量,在该向量上定义了“小于”的概念。
我现在的问题是我创建了一个新类Life,我想用它来实现生命游戏,使用CoordinateArray 对象来存储活细胞。我的Life 类的大纲如下所示:
class Life
{
public:
CoordinateArray LiveCells;
Life();
};
当我创建一个 Life 对象并使用一些活动单元格的坐标对其进行初始化时,CoordinateArray 派生类中定义的任何成员函数都不起作用。我怎样才能解决这个问题?我是否必须从SortableContainer 类派生Life 类,然后覆盖所有纯虚函数?任何帮助或帮助方向将不胜感激。
【问题讨论】:
-
请查看此C++ books 列表。
-
你为什么有所有这些课程?对于手头的问题,它们似乎完全没有必要。 (对于绝大多数问题,就此而言。)
-
你为什么说“这些功能……都不起作用”?我不明白你的意思。你能举个例子吗?
-
究竟发生了什么意外?什么是预期的没有发生? “将不起作用”不是问题描述,更不是问题。
-
你的 CoordinateArray 类有公共接口吗?继承层次之外的类只能使用该类的公共函数。
标签: c++ class inheritance member-functions