Advertisement
frentzy

OOP mostenire

May 8th, 2018
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.51 KB | None | 0 0
  1. #pragma warning(disable:4996)
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. using namespace std;
  6.  
  7. class Persoana {
  8. protected:
  9.     int varsta;
  10.     char nume[50];
  11.     char sex;
  12. public:
  13.     Persoana(int varsta = 0, char nume[] = "", char sex = ' ');
  14.     Persoana(Persoana &temp);
  15.     ~Persoana();
  16.     Persoana operator =(Persoana temp);
  17.     int getVarsta();
  18.     char* getNume();
  19.     char getSex();
  20.     void setVarsta(int varsta);
  21.     void setNume(char nume[]);
  22.     void setSex(char sex);
  23.     void print();
  24. };
  25. Persoana::Persoana(int varsta, char nume[], char sex) {
  26.     this->varsta = varsta;
  27.     strcpy(this->nume, nume);
  28.     this->sex = sex;
  29. }
  30.  
  31. Persoana::~Persoana() {
  32.     cout << "l-am apelat" << endl;
  33. }
  34. Persoana::Persoana(Persoana &temp) {
  35.     strcpy(this->nume, temp.nume);
  36.     this->sex = temp.sex;
  37.     this->varsta = temp.varsta;
  38. }
  39. Persoana Persoana::operator=(Persoana temp) {
  40.     strcpy(this->nume, temp.nume);
  41.     this->sex = temp.sex;
  42.     this->varsta = temp.varsta;
  43.     return *this;
  44. }
  45. void Persoana::print() {
  46.     cout << "Varsta: " << this->varsta << endl;
  47.     cout << "Nume: " << this->nume << endl;
  48.     cout << "Sex: " << this->sex << endl;
  49. }
  50.  
  51. int Persoana::getVarsta() {
  52.     return this->varsta;
  53. }
  54. char* Persoana::getNume() {
  55.     return this->nume;
  56. }
  57.  
  58. char Persoana::getSex() {
  59.     return this->sex;
  60. }
  61.  
  62. void Persoana::setVarsta(int varsta) {
  63.     this->varsta = varsta;
  64. }
  65. void Persoana::setNume(char nume[]) {
  66.     strcpy(this->nume, nume);
  67. }
  68. void Persoana::setSex(char sex) {
  69.     this->sex = sex;
  70. }
  71.  
  72.  
  73.  
  74. class Student : public Persoana {
  75. private:
  76.     char facultate[50];
  77. public:
  78.     Student(char facultate[] = "", int varsta = 0, char nume[] = "", char sex = ' ') :Persoana(varsta, nume, sex) {
  79.         strcpy(this->facultate, facultate);
  80.     }
  81.     Student(Student&temp);
  82.     Student operator =(Student temp);
  83.     ~Student();
  84.     char* getFacultate();
  85.     void setFacultate(char facultate[]);
  86.     void print();
  87. };
  88.  
  89. Student::Student(Student &temp) :Persoana(temp) {
  90.     strcpy(this->facultate, temp.facultate);
  91. }
  92.  
  93. Student::~Student() {
  94.     cout << "l-am apelat" << endl;
  95. }
  96. Student Student::operator=(Student temp) {
  97.     this->varsta = temp.varsta;
  98.     strcpy(this->nume, temp.nume);
  99.     this->sex = temp.sex;
  100.     strcpy(this->facultate, temp.facultate);
  101.     return *this;
  102. }
  103. char * Student::getFacultate() {
  104.     return this->facultate;
  105. }
  106. void Student::setFacultate(char facultate[]) {
  107.     strcpy(this->facultate, facultate);
  108. }
  109. void Student::print() {
  110.     this->Persoana::print();
  111.     cout << "Facultate: " << this->facultate;
  112. }
  113.  
  114. int main() {
  115.     Student Frentzy("Stiinte", 21, "Frentzy", 'M');
  116.     cout << Frentzy.getFacultate() << endl;
  117.     cout << Frentzy.getNume() << endl;
  118.     cout << "printam print-ul din Student:" << endl;
  119.     Frentzy.print();
  120.     cout << "\nprintam print-ul din persoana" << endl;
  121.     Frentzy.Persoana::print();
  122.     cout << endl;
  123.     Frentzy.setFacultate("Vaslui");
  124.     cout << "Facultate: " << Frentzy.getFacultate();
  125.     cout << "\n############################";
  126.     Student Malina;
  127.     cout << endl;
  128.     Malina.print();
  129.     Malina.setFacultate("Caras");
  130.     Malina.setNume("Malina");
  131.     Malina.setSex('F');
  132.     Malina.setVarsta(19);
  133.     cout << "\n################################\n";
  134.     cout << "\napelam print din Persoana" << endl;
  135.     Malina.Persoana::print();
  136.     cout << "\napelam print-ul din student:" << endl;
  137.     Malina.print();
  138.     cout << endl << endl << endl;
  139.     Persoana Fork(21, "bla bla", 'M');
  140.     Persoana Meh;
  141.     Meh = Fork;
  142.     Meh.print();
  143.     cout << endl << endl << endl;
  144.     cout << "test" << endl;
  145.     Malina.print();
  146.     cout << "\n###############" << endl;
  147.     Malina = Frentzy;
  148.     Malina.print();
  149.     Frentzy.print();
  150.     _getch();
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement