Sei sulla pagina 1di 3

#include<iostream>

#include<string>
using namespace std;

class Folder
{
private:
const int id;
string denumire;
int nrfisiere;
float* dimensiuni;

public:
static int prefix;

//constructor fara parametrii( Default Constructor)


Folder() :id(0)
{
denumire = ' ';
nrfisiere = 0;
dimensiuni = NULL;
}

//constructor cu 2 parametrii
Folder(int id, string denumire) :id(id)
{
this->denumire = denumire;
nrfisiere = 0;
dimensiuni = NULL;
}

//constructor cu 4 parametrii
Folder(const int id, string denumire, int nrfisiere, float*
dimensiuni):id(id)
{
this->denumire = denumire;
this->nrfisiere = nrfisiere;
if (dimensiuni != NULL)
{
this->dimensiuni = new float[nrfisiere];
for (int i = 0; i < nrfisiere; i++)
{
this->dimensiuni[i] = dimensiuni[i];
}
}
else
{
this->nrfisiere = 0;
this->dimensiuni = NULL;
}
}

//Copy Construcor
Folder(const Folder& t) :id(t.id)
{
denumire = t.denumire;
nrfisiere = t.nrfisiere;
if (t.dimensiuni)
{
dimensiuni = new float[nrfisiere];
for (int i = 0; i < nrfisiere; i++)
{
dimensiuni[i] = t.dimensiuni[i];
}
}
else
{
nrfisiere = 0;
dimensiuni = NULL;
}
}

//operator =(equal operator)


Folder& operator=(Folder& t)
{
if (dimensiuni)
{
delete[] dimensiuni;
}
denumire = t.denumire;
nrfisiere = t.nrfisiere;
if (t.dimensiuni)
{
dimensiuni = new float[nrfisiere];
for (int i = 0; i < nrfisiere; i++)
{
dimensiuni[i] = t.dimensiuni[i];
}
}
else
{
nrfisiere = 0;
dimensiuni = NULL;
}
return *this;
}

//Destructor
~Folder()
{
if (dimensiuni != NULL)
{
delete[] dimensiuni;
cout << endl << "destrucor apelat" << endl;
}
}

//getter denumire
string get_denumire()
{
return denumire;
}

//getter nr fisiere
int get_nrfisiere()
{
return nrfisiere;
}

//getter dimensiuni
float* get_dimensiuni()
{
if (dimensiuni != NULL)
{
float* copy = new float[nrfisiere];
for (int i = 0; i < nrfisiere; i++)
{
copy[i] = dimensiuni[i];
}
return copy;
}
return NULL;
}

//setter dimensiuni
void set_dimensiuni(int nrfis, float* dim)
{
if (dimensiuni)
{
delete[] dimensiuni;
}
if (dim)
{
dimensiuni = new float[nrfisiere];
nrfisiere = nrfis;
for (int i = 0; i < nrfisiere; i++)
{
dimensiuni[i] = dim[i];
}
}
else
{
nrfisiere = 0;
dimensiuni = NULL;
}
}
};

void main()
{
Folder f1(1, "Folder Nou");
cout << f1 << endl;
int dimensiuni[]{ 22.45, 14.5, 2.7, 25.9 };
Folder f2(12, "documente", 4, dimensiuni);
cout << endl << f2.get_nrfisiere();
}

Potrebbero piacerti anche