【发布时间】:2013-01-29 20:11:35
【问题描述】:
我有 3 个类,Root、CFile、SubDirectory。 Root 是一个抽象类。 CFile 和 SubDirectory 是从 Root 派生的。 CFile 具有属性:name:string、size:int、level:int。 SubDirectory 有属性:name:string, size:int, level:int, 一个vector,包含文件和目录,还有一个函数void add() 将文件或目录推入vector。如果目录中的文件,文件的级别比目录的高一级。定义了所有的 setter 和 getter。
现在,我有一个名为 DirRead.h 的文件,它可以构造当前目录(计算机文件夹)中的所有条目。每个条目都有一个文件名、大小、级别和类型(文件或目录)。在主函数中,我被要求使用来自 DirRead 的信息作为输入来构建文件系统的层次结构(使用 CFile 和 SubDirectory)。 DirRead.h 进行前序遍历。在这种情况下不接受递归(我试过了,DirRead.h 报错了)。我被要求使用堆栈来处理输入,但我不知道如何。显然水平在这里真的很重要。我试图创建一个堆栈并将所有文件和目录推送到堆栈中,然后比较级别以形成层次结构。但是 Root 没有 Add 功能,没有办法将 CFile 添加到 SubDirectory 中,因为它们都是 Root*。任何人都知道如何做到这一点?谢谢。
【问题讨论】: