【发布时间】:2010-12-19 02:21:17
【问题描述】:
好的,所以我现在有两个(完全不相关的不同项目)类使用迭代器。一个有iterator 和reverse_iterator 按预期工作,另一个当前有iterator 和一个半损坏的const_iterator(具体来说,因为 const_iterator 派生自迭代器,所以代码 LinkedList<int>::iterator i = const_list.begin() 是有效的并且允许您修改 const 定义的列表...)。
我打算将所有四种类型都添加到这个类中......如果可以的话。
我将如何继续最小化复制/粘贴代码并仅更改返回类型?创建一个像base_iterator 这样的基类来继承?创建一个iterator 或const_iterator 并从中继承?从一些 std:: 类继承?如果这些案例中的任何一个是“最佳”方法,那么哪些代码会放在哪里?
也许没有一个替代品是好的?我在这里很迷茫,找不到太多参考资料。
感谢任何建议,但请记住,我是该主题的新手(一般来说,迭代器和 C++,尤其是 OOP)。我尝试研究 GCC 附带的头文件,但徒劳无功——它们并不是我正在寻找的教程。
【问题讨论】:
-
Stdlib 实现对于任何语言来说通常都是不好的学习选择。他们经常需要处理外部接口(例如操作系统、其他语言),可能需要向后兼容过去十年的代码,以及其他根本不适用于您的因素。总而言之:它们不是以教学为目标而编写的。一本好书是必须的,它会更好地为您服务。
标签: c++ inheritance iterator dry code-reuse