2011-02-03 143 views
0

我有一个继承结构的对象与begin()和end()作为纯虚拟成员函数在基类。从这个对象我打算建立一个复合结构。这个内部对象有std :: vector成员,begin()和end()从它们获取数据。但是在叶类中没有矢量。现在我试图在叶类中找到begin()和end()的返回值。什么会是一个很好的方法来做到这一点?当没有容器时作为迭代器返回什么?

最简单的方法是在叶类中有一个向量成员,其中没有元素来加油begin()和end(),但是这样做感觉不对。

+0

为什么感觉不对?这对我来说很直观。 – 2011-02-03 23:31:01

+4

如果不是所有派生类都可以有意义地实现一个函数,那么这个函数是否在基类中?听起来像不好的设计产品,对我来说。 – GManNickG 2011-02-03 23:32:15

回答

1

你可以在你的叶类中实现一个非常简单的迭代器类,它只需返回虚拟迭代器。例如。 begin()返回与end()返回的迭代器相同的迭代器。您还需要实现一些比较功能。我不太清楚std :: iterator如何处理这个问题,但也许有一些你需要的东西。

相关问题