Você está na página 1de 3

#include iostream

using namespace std;

class Produs
{
protected
char nume;
float pret;
public
Produs()
{
cout endl Produs - ctr default;
nume = NULL;
pret = 0;
}
Produs(char nume, float pret)
{
cout endl Produs - ctr param;
if (nume == NULL)
this-nume = NULL;
else
{
this-nume = new char[strlen(nume) + 1];
strcpy(this-nume, nume);
}

this-pret = pret;
}
Produs(const Produs& source)
{
cout endl Produs - ctr copiere;

if (source.nume == NULL)
this-nume = NULL;
else
{
this-nume = new char[strlen(source.nume) + 1];
strcpy(this-nume, source.nume);
}

this-pret = source.pret;
}
Produs& operator=(const Produs& source)
{
cout endl Produs - operator=;
nume;
if (this-nume != NULL)
delete[] this-nume;
if (source.nume == NULL)
this-nume = NULL;
else
{
this-nume = new char[strlen(source.nume) + 1];
strcpy(this-nume, source.nume);
}

pret
this-pret = source.pret;
return this;
}
~Produs()
{
cout endl Produs - destructor;
if (this-nume != NULL)
delete[] this-nume;
}

friend ostream& operator(ostream& consola, Produs& prod);


};

ostream& operator(ostream& consola, Produs& prod)


{
consola endl Nume ;
if(prod.nume !=NULL)
consola prod.nume;
consola endl Pret prod.pret;
return consola;
}

class ProdusAlimentar public Produs


{
private
bool perisabil;
public
ProdusAlimentar()
Produs()
{
cout endlProdusAlimentar - ctr default;
perisabil = false;
}
ProdusAlimentar(char nume, float pret, bool perisbail)
Produs(nume, pret)
{
cout endl ProdusAlimentar - ctr param;
this-perisabil = perisabil;
}
ProdusAlimentar(const ProdusAlimentar& source)
Produs(source)
{
cout endl ProdusAlimentar - ctr copiere;
this-perisabil = source.perisabil;
}
ProdusAlimentar& operator=(const ProdusAlimentar& source)
{
Produsoperator=(source);
this-perisabil = source.perisabil;

return this;
}
~ProdusAlimentar()
{
cout endl ProdusAlimentar - destr;
}

float getPretTva()
{
return this-pret 1.09;
}
};

class ProdusNeAlimentar public Produs


{
private
int garantie;
public
ProdusNeAlimentar(char nume, float pret, int garantie)
Produs(nume, pret)
{
this-garantie = garantie;
}
};

void main()
{
ProdusAlimentar pa(spanac, 20, true);
ProdusAlimentar pa2 = pa;
cout (Produs)pa;

Produs pp = &pa;
cout pp;
ProdusAlimentar ppa = (ProdusAlimentar)pp;

ProdusNeAlimentar pn(IPhone 20, 3000, 2);

Produs listaProduse = new Produs[2];


listaProduse[0] = &pa;
listaProduse[1] = &pn;

for (int i = 0; i 2; i++)


cout listaProduse[i];