#include #include #include #include using namespace std; namespace fs=boost::filesystem; class Element { protected: fs::path sciezka; public: double rozmiar; Element(){} Element(fs::path sc):sciezka(sc){} fs::path Sciezka(){return sciezka;} virtual double Rozmiar() =0; }; class Plik : public Element{ private : double rozmiar; public: Plik():Element(), rozmiar(0.0){} Plik(fs::path s):Element(s){} double Rozmiar(){ rozmiar = fs::file_size(Sciezka()); return rozmiar; } void wyswietl(){ cout<elements; public: Katalog():Element(),rozmiar(0.0){} Katalog(fs::path s):Element(s),rozmiar(0.0){} double Rozmiar(){ // rozmiar=fs::file_size(Sciezka()); for(fs::directory_iterator iter(sciezka); iter!= fs::directory_iterator(); ++iter) { Element* element; if(is_directory(*iter)) element = new Katalog(*iter); else element = new Plik(*iter); elements.push_back(element); } for(vector::iterator iter = elements.begin();iter!= elements.end(); ++ iter) rozmiar += (*iter)->Rozmiar(); return rozmiar; } }; int main(){ // vectorelementy; fs::path path ="./"; Katalog *file = new Katalog(path); cout<Rozmiar()<