Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

#include<string>

#include<iostream>
using namespace std;

// compunere
class Portofoliu {
private:
float* sumeAsigurari;
int nrAsigurari;

public:
Portofoliu() {
this->sumeAsigurari = NULL;

this->nrAsigurari = 0;

}
Portofoliu(float* p_sumeAsigurari, int p_nrAsigurari) {
this->sumeAsigurari = new float[p_nrAsigurari];
for (int i = 0; i < p_nrAsigurari; i++) {
this->sumeAsigurari[i] = p_sumeAsigurari[i];

}
this->nrAsigurari = p_nrAsigurari;

Portofoliu(Portofoliu& p) {

this->sumeAsigurari = new float[p.nrAsigurari];


for (int i = 0; i < p.nrAsigurari; i++) {
this->sumeAsigurari[i] = p.sumeAsigurari[i];

}
this->nrAsigurari = p.nrAsigurari;

Portofoliu& operator=(Portofoliu& p) {
delete[] this->sumeAsigurari;
this->sumeAsigurari = new float[p.nrAsigurari];
for (int i = 0; i < p.nrAsigurari; i++) {
this->sumeAsigurari[i] = p.sumeAsigurari[i];

}
this->nrAsigurari = p.nrAsigurari;
return *this;

~Portofoliu() {
if (this->sumeAsigurari != NULL) {
delete[]this->sumeAsigurari;
}

float medie() {
float suma = 0;
for (int i = 0; i < nrAsigurari; i++) {
suma += sumeAsigurari[i];

}
return suma / nrAsigurari;

};

class Broker {
private:
char* nume;
float suma;
string tipAsigurare;
int durata;
static string firma;

public:
Portofoliu portofoliu; // compunere de 2 clase, relatie de HAS A
Broker() {
this->nume = new char[strlen("na") + 1 ];
strcpy_s(this->nume, strlen("na") + 1, "na");
this->suma = 0;
this->tipAsigurare = "0";
this->durata = 0;

Broker(const char* p_nume, float p_suma, string p_tipAsigurare, int p_durata,


Portofoliu p_portofoliu) {
this->portofoliu = p_portofoliu;
this->nume = new char[strlen(p_nume) + 1];
strcpy_s(this->nume, strlen(p_nume) + 1, p_nume);
this->suma = p_suma;
this->tipAsigurare =p_tipAsigurare;
this->durata = p_durata;

}
Broker(Broker& b) {

this->nume = new char[strlen(b.nume) + 1];


strcpy_s(this->nume, strlen(b.nume) + 1, b.nume);
this->suma = b.suma;
this->tipAsigurare = b.tipAsigurare;
this->durata = b.durata;

Broker& operator=(Broker& b) {

if (this->nume != NULL) {
delete[]this->nume;
}

this->nume = new char[strlen(b.nume) + 1];


strcpy_s(this->nume, strlen(b.nume) + 1, b.nume);
this->suma = b.suma;
this->tipAsigurare = b.tipAsigurare;
this->durata = b.durata;
return *this;
}

~Broker() {
if (this->nume != NULL) {
delete[]this->nume;
}

float operator ()(float x) {


return this->suma*x;

operator double() {

return this->suma;
}

Portofoliu getPortofoliu() {
return this->portofoliu;
}
friend ostream& operator<<(ostream& out, Broker& sursa);

};

string Broker::firma ="ionescuSRL";

//c/*har* nume;
//float suma;
//string tipAsigurare;
//int durata;
//static string firma;*/

ostream& operator<<(ostream& out, Broker& sursa) {


out << "numele este " << sursa.nume << endl;
out << " suma este " << sursa.suma << endl;
out << " tip este " << sursa.tipAsigurare << endl;
out << "durata este" << sursa.durata << endl;
out << "firma este" << sursa.firma << endl;
return out;

int main() {
Broker b1;
Portofoliu p1(new float[] {2, 3}, 2);

Broker b2("ana", 30, "full", 12, p1);


// //cout << b2;
//Broker b3 = b2;
////cout << b3;
//Broker b4;
//b4 = b3;
////cout << b4;

////cout << b2(1.1);

//cout << (double) b2;


cout << b2.portofoliu.medie();

You might also like