我需要一个游标树,我在EiffelStudio中找到了CURSOR_TREE和RECURSIVE_CURSOR_TREE类,但是它们被推迟了,我不知道如何实现它们。奇怪吗?
答案 0 :(得分:0)
在CURSOR_TREE
的安装中提供了实现.../library/base/elks/structures/cursor_tree
的某些类的源代码。不幸的是,这些类(已实现)与void safety不兼容。您可以尝试将以下类复制到项目中并进行编译:
library/base/elks/structures/cursor_tree/compact_cursor_tree.e
library/base/elks/structures/cursor_tree/linked_cursor_tree.e
library/base/elks/structures/cursor_tree/two_way_cursor_tree.e
library/base/elks/structures/cursors/compact_tree_cursor.e
library/base/elks/structures/cursors/linked_cursor_tree_cursor.e
library/base/elks/structures/cursors/two_way_cursor_tree_cursor.e
该过程将涉及几个更改:
您的项目无效安全功能应设置为none
(并且应从头开始重新编译项目);
取决于编译器的版本,您可能需要修复库类中的某些有效性错误(例如,从put_right
子句中删除redefine
);
必须提供功能new_cursor
的实现,快速修复可能是虚拟存根:
new_cursor: ITERATION_CURSOR [G]
do
Result := (create {SPECIAL [G]}.make_empty (0)).new_cursor
end
之后,您应该可以使用有效的类COMPACT_CURSOR_TREE
,LINKED_CURSOR_TREE
和TWO_WAY_CURSOR_TREE
。
如果您打算在无效的项目中使用这些类,我建议与Eiffel Software合作,因为实现和接口需要进行实质性的更改才能使代码无效。