Documente Academic
Documente Profesional
Documente Cultură
#include <string>
//clasa de baza
class Persoana
{
string nume, prenume;
public:
Persoana(){}
Persoana(string a, string b):nume(a),prenume(b){}
string get_nume(){return nume;}
string get_prenume(){return prenume;}
};
int main()
{
//declar doi pointeri la obiecte din clasa persoana
Persoana *p1, *p2;
//declar si initializez un pointer la un obiect din clasa student
Student *s=new Student("Ionescu","Marcel","50901","12345");
//declar si initializez un pointer la un obiect din clasa angajat
Angajat *a=new Angajat("Popescu","Marcelina","Contabilitate","67890");
//demonstratie de polimorfism
//folosesc obiectul din clasa student ca si obiect din clasa persoana
p1=s;
//alta demonstratie de polimorfism
//folosesc obiectul din clasa angajat ca si obiect din clasa persoana
p2=a;
cout<<"Numele ob. din clasa student folosit ca si ob. din clasa persoana:
"<<p1->get_nume()<<endl;
cout<<"Prenumele ob. din clasa student folosit ca si ob. din clasa persoana:
"<<p1->get_prenume()<<endl;
cout<<"Numele ob. din clasa angajat folosit ca si ob. din clasa persoana:
"<<p2->get_nume()<<endl;
cout<<"Prenumele ob. din clasa angajat folosit ca si ob. din clasa persoana:
"<<p2->get_prenume()<<endl;
return 0;
}