W aplikacji reprezentujemy pliki i katalogi (foldery) systemu plików przez obiekty File i Dir, pokazane niżej. System plików pozwala na zagnieżdżone katalogi.
class File { public: File(std::string n, int s) : name_(n), size_(s) {} std::string getName() const { return name_; } int getSize() const { return size_; } ~File(){} private: std::string name_; int size_; }; class Dir { using Child = File*; using Children = std::vector; public: Dir(const std::string& n) : name_(n) {} ~Dir() { for(Child c : ch_) delete c; } std::string getName() const { return name_; } int getSize() const { int s = 0; for(Child c : ch_) s += c->getSize(); return s; } void add(Child el) { ch_.push_back(el); } private: std::string name_; Children ch_; };
Proszę odpowiedz na poniższe pytania: