Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Persoana.h
- #pragma once
- #include <iostream>
- #include <string>
- using namespace std;
- class Persoana
- {
- protected:
- string nume;
- int varsta;
- public:
- Persoana();
- Persoana(string, int);
- ~Persoana();
- virtual void afisare();
- };
- // Persoana.cpp
- #include "Persoana.h"
- Persoana::Persoana() : nume(""), varsta(0) {}
- Persoana::Persoana(string nume, int varsta) : nume(nume), varsta(varsta) {}
- Persoana::~Persoana() {}
- void Persoana::afisare()
- {
- cout << "Nume: " << nume << endl;
- cout << "Varsta: " << varsta << endl;
- }
- // Student.h
- #pragma once
- #include "Persoana.h"
- class Student : virtual public Persoana
- {
- protected:
- string profil;
- int valoareBursa;
- public:
- Student();
- Student(string, int, string, int);
- ~Student();
- void afisare();
- int getVenit();
- };
- // Student.cpp
- #include "Student.h"
- Student::Student() : Persoana(), profil(""), valoareBursa(0) {}
- Student::Student(string nume, int varsta, string profil, int valoareBursa) : Persoana(nume, varsta), profil(profil), valoareBursa(valoareBursa) {}
- Student::~Student() {}
- void Student::afisare()
- {
- Persoana::afisare();
- cout << "Profil: " << profil << endl;
- cout << "Valoare bursa: " << valoareBursa << endl;
- }
- int Student::getVenit()
- {
- return valoareBursa;
- }
- // Angajat.h
- #pragma once
- #include "Persoana.h"
- class Angajat : virtual public Persoana
- {
- protected:
- int salariu;
- string numeFirma;
- public:
- Angajat();
- Angajat(string, int, int, string);
- ~Angajat();
- void afisare();
- int getVenit();
- };
- // Angajat.cpp
- #include "Angajat.h"
- Angajat::Angajat() : Persoana(), salariu(0), numeFirma("") {}
- Angajat::Angajat(string nume, int varsta, int salariu, string numeFirma) : Persoana(nume, varsta), salariu(salariu), numeFirma(numeFirma) {}
- Angajat::~Angajat() {}
- void Angajat::afisare()
- {
- Persoana::afisare();
- cout << "Salariu: " << salariu << endl;
- cout << "Nume firma: " << numeFirma << endl;
- }
- int Angajat::getVenit()
- {
- return salariu;
- }
- // StudentAngajat.h
- #pragma once
- #include "Student.h"
- #include "Angajat.h"
- class StudentAngajat : virtual public Student, virtual public Angajat
- {
- public:
- StudentAngajat();
- StudentAngajat(string, int, string, int, int, string);
- ~StudentAngajat();
- void afisare();
- int getVenit();
- };
- // StudentAngajat.cpp
- #include "StudentAngajat.h"
- StudentAngajat::StudentAngajat() : Persoana(), Student(), Angajat() {}
- StudentAngajat::StudentAngajat(string nume, int varsta, string profil, int valoareBursa, int salariu, string numeFirma) :
- Persoana(nume, varsta), Student(nume, varsta, profil, valoareBursa), Angajat(nume, varsta, salariu, numeFirma) {}
- StudentAngajat::~StudentAngajat() {}
- void StudentAngajat::afisare()
- {
- Student::afisare();
- cout << "Salariu: " << Angajat::salariu << endl;
- cout << "Nume firma: " << Angajat::numeFirma << endl;
- }
- int StudentAngajat::getVenit()
- {
- return Student::valoareBursa + Angajat::salariu;
- }
- // main
- #include "Persoana.h"
- #include "Student.h"
- #include "Angajat.h"
- #include "StudentAngajat.h"
- #include <vector>
- int main()
- {
- Student P1("Gheorghe Maria", 21, "mate", 500);
- Angajat P2("Toader Costel", 24, 4000, "ubi");
- StudentAngajat P3("Popa Marian", 25, "info", 500, 3000, "soft");
- /*
- P1.afisare();
- cout << endl;
- P2.afisare();
- cout << endl;
- P3.afisare();
- cout << endl;
- cout << endl << endl;
- */
- vector<Persoana*> pers;
- pers.push_back(&P1);
- pers.push_back(&P2);
- pers.push_back(&P3);
- for (int i = 0; i < pers.size(); ++i)
- {
- pers[i]->afisare();
- cout << endl;
- }
- pers.clear();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement