Sunteți pe pagina 1din 5

METODE ACCESOR: GET SI SET

GET - ESTE METODA ACCESOR CARE REDA ACCESUL UTILIZATORULUI CATRE ATRIBUTELE
DIN ZONA PRIVATA A CLASEI PENTRU A PUTEA FI CITITE (AFISATE PE CONSOLA)
GETTERII SE FOLOSESC PENTRU A AFISA ATRIBUTELE PE ECRAN

SET - ESTE METODA ACCESOR CARE REDA ACCESUL UTILIZATORULUI CATRE ATRIBUTELE
DIN ZONA PRIVATA A CLASEI PENTRU A PUTEA FI RESCRISE (MODIFCIATE CU NOI VALORI)

class Magazin
{
char* numeProprietar;
string denumireMagazin;
bool esteNonStop;
int nrAngajati;
int nrProduse;
float* preturiProduse;
string* numeProduse;
float suprafataMagazin;
const float TVA;
public:
static int clasaCAENPrincipala;

Magazin() :TVA(0)
{
this->numeProprietar = new char[strlen("Anonim")+1];
strcpy(this->numeProprietar, "Anonim");
this->denumireMagazin = "Anonim";
this->esteNonStop = 1;
this->nrAngajati = 0;
this->nrProduse = 0;
this->preturiProduse = NULL;
this->numeProduse = NULL;
this->suprafataMagazin = 0;

Magazin(const char* numeProprietar, string denumireMagazin, bool esteNonStop,


int nrAngajati, int nrProduse, float* preturiProduse,
string* numeProduse,float suprafataMagazin, float TVA) :TVA(TVA)
{

this->numeProprietar = new char[strlen(numeProprietar) + 1];


strcpy(this->numeProprietar, numeProprietar);
this->denumireMagazin = denumireMagazin;
this->esteNonStop = esteNonStop;
this->nrAngajati = nrAngajati;
this->nrProduse = nrProduse;
this->preturiProduse = new float[this->nrProduse];
this->numeProduse = new string[this->nrProduse];

for (int i=0;i<this->nrProduse;i++)


{
this->preturiProduse[i]=preturiProduse[i];
this->numeProduse[i] = numeProduse[i];
}
this->suprafataMagazin = suprafataMagazin;

GETTERII
char* getNumeProprietar()
{
return this->numeProprietar;
}

string getDenumireMagazin()
{
return this->denumireMagazin;
}

bool getEsteNonStop()
{
return this->esteNonStop;
}

int getNrAngajati()
{
return this->nrAngajati;
}

int getNrProduse()
{
return this->nrProduse;
}

float* getPreturiProduse()
{
return this->preturiProduse;
}

string* getNumeProduse()
{
return this->numeProduse;
}

float getSuprafataMagazin()
{
return this->suprafataMagazin;
}

float getTVA()
{
return this->TVA;
}
SETTERII
void setNumeProprietar(const char* numeProprietarNou)
{
//1.dezalocare de memorie
if (this->numeProprietar != NULL)
{
delete[] this->numeProprietar;
}

//2.alocare de memorie
this->numeProprietar = new char[strlen(numeProprietarNou) + 1];

//3.modificare atribut
strcpy(this->numeProprietar, numeProprietarNou);
}

void setDenumireMagazin(string denumireMagazinNou)


{
//3.modificare atribut
this->denumireMagazin = denumireMagazinNou;
}

void setEsteNonStop(bool esteNonStopNou)


{
//3.modificare atribut
this->esteNonStop = esteNonStopNou;
}

void setNrAngajati(int nrAngajatiNou)


{
//3.modificare atribut
this->nrAngajati = nrAngajatiNou;
}

//PENTRU VECTORII CARE VIN LA PACHET CU UN NUMARATOR (INT*,


FLOAT*, DOUBLE*, STRING*, BOOL*) NU AVEM VOIE SA FACEM SETTER
SEPARAT PENTRU NUMARATOR SI SEPARAT PENTRU VECTOR, DEOARECE NU
AVEM VOIE SA MODIFICAM NUMARTORUL UNUI VECTOR, FARA SA
MODIFICAM SI VECTORUL IN SINE, SI INVERS, NU AM VOIE SA MODIFIC UN
VECTOR, FARA SA II MODIFIC SI NUMARATORUL
//SETTERUL SE FACE LA COMUN, ATAT PENTRU NUMARATOR, CAT SI
PENTRU VECTORII CARE SUNT LEGATI DE ACEL NUMARATOR (DACA MODIFIC
UNUL DIN ELE, AUTOMAT IL MODIFIC SI PE CELALALT
void setNrPoduse(int nrProduseNou, float* preturiProduseNoi, string* numeProduseNoi)
{
//1.dezalocare de memorie
if (this->preturiProduse != NULL)
{
delete[] this->preturiProduse;
}
if (this->numeProduse != NULL)
{
delete[] this->numeProduse;
}
//2.alocare de memorie
this->nrProduse = nrProduseNou;
this->preturiProduse = new float[this->nrProduse];
this->numeProduse = new string[this->nrProduse];
//3.modificare atribut
for (int i = 0; i < this->nrProduse; i++)
{
this->preturiProduse[i] = preturiProduseNoi[i];
this->numeProduse[i] = numeProduseNoi[i];
}
}

void setSuprafataMagazin(float suprafataMagazinNoua)


{
this->suprafataMagazin = suprafataMagazinNoua;
}

};
AICI SE TERMINA CLASA

void main()
{

cout << Magazin::clasaCAENPrincipala << endl;

Magazin m1;
cout << m1.getNumeProprietar() << endl;
cout << m1.getDenumireMagazin() << endl;
cout << m1.getEsteNonStop() << endl;
cout << m1.getNrAngajati() << endl;
cout << "Nr produse: " << m1.getNrProduse() << endl;
cout << "Produse:" << endl;
for (int i = 0; i < m1.getNrProduse(); i++)
{
cout << "Pret: " << m1.getPreturiProduse()[i] << " Produs: " <<
m1.getNumeProduse()[i] << endl;
}
cout << m1.getSuprafataMagazin() << endl;
cout << m1.getTVA() << endl << endl;

m1.setNumeProprietar("Ana");
m1.setDenumireMagazin("Stradivarius");
m1.setEsteNonStop(0);
m1.setNrAngajati(23);
float vectorPreturi1[] = { 66.4,25.7,200.5 };
string vectorProduse2[] = { "Bluza","Esarfa","Geaca" };
m1.setNrPoduse(3, vectorPreturi1, vectorProduse2);
m1.setSuprafataMagazin(30.4);

cout << m1.getNumeProprietar() << endl;


cout << m1.getDenumireMagazin() << endl;
cout << m1.getEsteNonStop() << endl;
cout << m1.getNrAngajati() << endl;
cout << "Nr produse: " << m1.getNrProduse() << endl;
cout << "Produse:" << endl;
for (int i = 0; i < m1.getNrProduse(); i++)
{
cout << "Pret: " << m1.getPreturiProduse()[i] << " Produs: " <<
m1.getNumeProduse()[i] << endl;
}
cout << m1.getSuprafataMagazin() << endl;
cout << m1.getTVA() << endl << endl;
constr cu toti parametrii
float vectorPreturi[] = { 10.5, 100.9,50.55,1.99 };
string vectorNume[]={ "Ciocolata","Scaun","HusaTelefon","Bezele" };
Magazin m5("Roxana","Emag", 1, 150,4, vectorPreturi, vectorNume, 100.67,
0.19);
cout << m5.getNumeProprietar() << endl;
cout << m5.getDenumireMagazin() << endl;
cout << m5.getEsteNonStop() << endl;
cout << m5.getNrAngajati() << endl;
cout << "Nr produse: " << m5.getNrProduse() << endl;
cout << "Produse:" << endl;
for (int i = 0; i < m5.getNrProduse(); i++)
{
cout<<"Pret:"<<m5.getPreturiProduse()[i]<<"Produs:"<< m5.getNumeProduse()
[i]<<endl;
}
cout << m5.getSuprafataMagazin() << endl;
cout << m5.getTVA() << endl << endl;

S-ar putea să vă placă și