Documente Academic
Documente Profesional
Documente Cultură
class Avocat {
const int codAvocat;
char* nume;
int onorariu;
int nrProcese;
int* vectorProcese;
public:
//CONSTRUCTOR FARA PAMATERI
Avocat() :codAvocat(0) {
this->nume = new char[strlen("na") + 1];
this->onorariu = 0;
this->nrProcese = 0;
this->vectorProcese = NULL;
}
//CONSTRUCTIR CU TOTI PARAMETRI
Avocat(const int codAvocat, const char* numeA, int onorariuA, int nrProceseA,
int* vectorProceseA) :codAvocat(codAvocat) {
this->nume = new char[strlen(numeA) + 1];
strcpy(this->nume, numeA);
this->onorariu = onorariuA;
this->nrProcese = nrProceseA;
this->vectorProcese = new int[nrProceseA];
for (int i = 0; i < nrProceseA; i++) {
this->vectorProcese[i] = vectorProceseA[i];
}
}
//CONSTRUCTOR CU 1 PARAMETRU
Avocat(const char* numeA) :codAvocat(0) {
this->nume = new char[strlen(numeA) + 1];
strcpy(this->nume, numeA);
this->onorariu = 0;
this->nrProcese = 0;
this->vectorProcese = NULL;
}
//CONSTRUCTOR DE COPIERE
Avocat(const Avocat& sursa) : codAvocat(sursa.codAvocat) {
this->nume = new char[strlen(sursa.nume) + 1];
strcpy(this->nume, sursa.nume);
this->onorariu = sursa.onorariu;
this->nrProcese = sursa.nrProcese;
this->vectorProcese = new int[sursa.nrProcese];
for (int i = 0; i < sursa.nrProcese; i++) {
this->vectorProcese[i] = sursa.vectorProcese[i];
}
}
//OPERATOR =
Avocat& operator=(const Avocat& sursa) {
if (vectorProcese) {
delete[] vectorProcese;
}
if (nume) {
delete[]nume;
}
this->nume = new char[strlen(sursa.nume) + 1];
strcpy(this->nume, sursa.nume);
this->onorariu = sursa.onorariu;
this->nrProcese = sursa.nrProcese;
this->vectorProcese = new int[sursa.nrProcese];
for (int i = 0; i < sursa.nrProcese; i++) {
this->vectorProcese[i] = sursa.vectorProcese[i];
}
return *this;
}
//DESTRUCTOR
~Avocat() {
if (vectorProcese) {
delete[] vectorProcese;
}
if (nume) {
delete[]nume;
}
}
//INTRARE SI IESIRE
}
o << endl;
return o;
}
if (sursa.vectorProcese) {
delete[] sursa.vectorProcese;
}
sursa.vectorProcese = new int[sursa.nrProcese];
for (int i = 0; i < sursa.nrProcese; i++) {
cout << "Suma aferenta procesului " << i + 1 << ":";
in >> sursa.vectorProcese[i];
}
return in;
//SETTERI
void setNume(const char* numeNou) {
if (strlen(numeNou) > 2) {
if(this->nume) {
delete[]nume;
}
this->nume = new char[strlen(numeNou) + 1];
strcpy(this->nume, numeNou);
}
}
}
}
//GET
char* getNume() {
return this->nume;
}
int* getVectProcese() {
return this->vectorProcese;
}
int getNrProcese() {
return this->nrProcese;
}
int getCOD() {
return this->codAvocat;
}
float operator()() {
float m = 0;
for (int i = 0; i < nrProcese; i++) {
m += vectorProcese[i];
}
return m;
}
bool operator==(Avocat r) {
return r.nrProcese == nrProcese;
}
};
void main() {
Avocat a;
Avocat a3(a2);
a = a1;
cout << a1;
cin >> a1;
a1.setNume("Alexandrescu");
a1.setVectorProcese(3, vectorProces3);
cout << a.getCOD() << endl;
cout << a1.getNrProcese() << endl;
cout << a1.getNume() << endl;
++a1;
a += 1;
cout << (int)a1;
cout << (a1 == a2) << endl;
//cout << a1[0] << endl;