Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
2.6 kB
5
Indexable
Never
#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;
}