avr39ripe

PV913SimpleInheritance

Jul 21st, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. class Human
  5. {
  6.     std::string name;
  7.     int age;
  8. public:
  9.     Human(std::string nameP, int ageP) : name{ nameP }, age{ ageP }
  10.     {
  11.         std::cout << "Human constructed for " << this << '\n';
  12.     };
  13.     Human() : Human{ "John Doe", 42 } {};
  14.     ~Human()
  15.     {
  16.         std::cout << "Human destructed for " << this << '\n';
  17.     }
  18.     //Human() : name{ "John Doe" }, age{ 42 } {};
  19.  
  20.     void print() { std::cout << name << ' ' << age << '\n'; };
  21. };
  22.  
  23. class Teacher : public Human
  24. {
  25. public:
  26.     std::string universityName;
  27.  
  28.     Teacher(std::string nameP, int ageP, std::string universityNameP)
  29.         : Human{ nameP, ageP }, universityName{universityNameP}
  30.     {
  31.         std::cout << "Teacher constructed for " << this << '\n';
  32.     };
  33.  
  34.     Teacher():Teacher{ "Teacher Doe", 33, "STEP" } {};
  35.  
  36.     ~Teacher()
  37.     {
  38.         std::cout << "Teacher destructed for " << this << '\n';
  39.     };
  40.  
  41.     void print()
  42.     {
  43.         Human::print();
  44.         std::cout << "I'm a Teacher in " << universityName << " :{\n";
  45.     };
  46.     //void printTeacher() { print(); std::cout << universityName << '\n'; }
  47. };
  48.  
  49. class Student : public Human
  50. {
  51. public:
  52.     std::string universityName;
  53.     float avgGrade;
  54. };
  55.  
  56. class Employee : public Human
  57. {
  58. public:
  59.     std::string companyName;
  60.     double salary;
  61. };
  62.  
  63. int main()
  64. {
  65.     std::cout << "Human...\n";
  66.     Human hum;
  67.     hum.print();
  68.  
  69.     std::cout << "Teacher...\n";
  70.     Teacher me{"Alexander", 38, "Step"}; // me.name(Human) me.age(Human) me.universityName(Teacher)
  71.     me.print();
  72.  
  73.     //me.printTeacher();
  74.  
  75.   /*  me.name = "Alexander";
  76.     me.age = 38;*/
  77.     //me.universityName = "STEP";
  78.   //  
  79.  
  80.  
  81.     //Student student1;
  82.     //student1.name = "Bill";
  83.     //student1.age = 44;
  84.     //student1.universityName = "STEP";
  85.     //student1.avgGrade = 9.7;
  86.     //student1.print();
  87.  
  88. }
Add Comment
Please, Sign In to add comment