#include <iostream>
#include <string>
using namespace std;
class File {
protected: //protected, щоби поля батьківського класу (FILE) мали доступ до класу CATALOG
string name;
int size; //розмір файлу
string dateOfCreation;
string timeOfCreation;
string attrib; //атрибут файлу ("h": hidden, "a": archived, "p": pinned and so on)
public:
File() { //Конструктор за замовчуванням
this->name = "";
this->size = 0;
this-> dateOfCreation = "dd.mm.yyyy";
this->timeOfCreation = "hh.mm";
this->attrib = "";
}
//Конструктор ініціалізації (присвоює полям класу (рядки 7-11) передані значення)
File(string name, int size, string dateOfCreation, string timeOfCreation, string attrib) {
//Відповідно саме присвоювання переданими значеннями поля класу
this->name = name;
this->size = size;
this->dateOfCreation = dateOfCreation;
this->timeOfCreation = timeOfCreation;
this->attrib = attrib;
}
//Тут мають бути потрібні методи (які собі придумаєш)
~File() = default; //Деструктор
//МОЖНА ЩЕ писати деструктор так:
//~File() {
//
//}
};
class Catalog: public File { //Тут модифікатор доступу майже завжди повинен бути PUBLIC (щоби мати доступ до полів батьківського класу)
private:
File* fileArray; //Динамічний масив об'єктів класу FILE
public:
//Конструктор за замовчуванням
Catalog() {
this->fileArray = new File[this->size]; //виділення динамічної пам'яті для масиву
}
//Тут ще має бути конструктор ініціалізації, методи, але я трішки не маю часу розписати аххаха сорі!
//Деструктор
~Catalog() {
delete[] this->fileArray; //видалення динам. пам'яті
}
};
int main()
{
//Об'єкт класу FILE, тобто наш файлик =)
File file("file.txt", 2, "19.09.2022", "23:30", "p");
return 0;
}