bool Directory::cp(const File& file) { // exe ise direk deep-independet copy al const Executable *temp = dynamic_cast<const Executable *> (&file); if (temp != NULL) { Executable *nExe = new Executable(*temp); nExe->setTime("18/12/15"); // zamanlar temsilidir nExe->updatePath(this->path() + "/" + nExe->getName()); //path guncelle m_inFiles.insert(nExe); // containere sirali olarak ekle } // klasor ise copy constuctor ile o klasorun deep copy sini al const Directory *temp1 = dynamic_cast<const Directory *> (&file); if (temp1 != NULL) { Directory *nDir = new Directory(*temp1); nDir->setTime("19/12/15"); // zamanlar temsilidir nDir->updatePath(this->path() + "/" + nDir->getName()); // path upd. m_inFiles.insert(nDir); } // text dosyasi ise direk copy al const TextFile *temp2 = dynamic_cast<const TextFile *> (&file); if (temp2 != NULL) { TextFile *nText = new TextFile(*temp2); nText->setTime("21/12/15"); // zamanlar temsilidir nText->updatePath(this->path() + "/" + nText->getName()); m_inFiles.insert(nText); } // dangling pointers temp = NULL; temp1 = NULL; temp2 = NULL; return true; }