Erasyl_BKT_505

Untitled

Jan 17th, 2024
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.40 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define yes std::cout<<"YES\n";
  3. #define no std::cout<<"NO\n";
  4. using std::string;
  5. typedef long long ll;
  6. typedef unsigned long long ull;
  7. //template <typename T>
  8.  
  9. class abstractEmployee{
  10.     virtual void askForPromotion() = 0;
  11. };
  12.  
  13.  
  14. class Employee:abstractEmployee{
  15. protected:
  16.     std::string Name;
  17.     std::string Company;
  18.     int Age;
  19. public:
  20.     Employee(){}
  21.     Employee(string name, string company, int age){
  22.         Name = name;
  23.         Company = company;
  24.         Age = age;
  25.     }
  26.     void IntroduseYorself(){
  27.         std::cout<<"Name - "<<Name<<'\n';
  28.         std::cout<<"Company - "<<Company<<'\n';
  29.         std::cout<<"Age - "<<Age<<'\n';
  30.     }
  31.     void setName(string name){
  32.         Name = name;
  33.     }
  34.     string getName(){
  35.         return Name;
  36.     }
  37.     void setCompany(string company){
  38.         Company = company;
  39.     }
  40.     string getCompany(){
  41.         return Name;
  42.     }
  43.     void setAge(int age){
  44.         Age = age;
  45.     }
  46.     int getAge(){
  47.         return Age;
  48.     }
  49.     void askForPromotion(){
  50.         if(Age > 30)
  51.             std::cout<<Name<<" got promoted\n";
  52.         else
  53.             std::cout<<Name<<" sorry No promotion for you\n";
  54.     }
  55.     virtual void Work(){
  56.         std::cout<<Name<<" is chaking email,task backlog, perfroming tasks...\n";
  57.     }
  58. };
  59. class Developer: public Employee{
  60. public:
  61.     string FavProgLanguage;
  62.     Developer(string name, string company, int age, string favProgLanguage)
  63.         :Employee(name, company, age)
  64.     {
  65.         FavProgLanguage = favProgLanguage;
  66.     }
  67.     void FixBug(){
  68.         std::cout<<Name<<" fixed bug using "<<FavProgLanguage<<'\n';
  69.     }
  70.     void Work(){
  71.         std::cout<<Name<<" is writing "<<FavProgLanguage<<" code\n";
  72.     }
  73. };
  74. class Teacher: public Employee{
  75. public:
  76.     string Subject;
  77.     Teacher(string name, string company, int age, string subject)
  78.         :Employee(name, company, age)
  79.     {
  80.         Subject = subject;
  81.     }
  82.     void PreapareLesson(){
  83.         std::cout<<Name<<" is prepearing "<<Subject<<" lesson\n";
  84.     }
  85.     void Work(){
  86.         std::cout<<Name<<" is teaching " <<Subject<<'\n';
  87.     }
  88. };
  89.  
  90. int main() {
  91.     Developer d = Developer("Erasyl", "Programer", 18, "C++");
  92.     Teacher t = Teacher("Bakhytzhan","Korkyt ata", 42, "History");
  93.     t.Work();
  94.     d.Work();
  95.     Employee *e1 = &d;
  96.     Employee *e2 = &t;
  97.     e1->Work();
  98.     e2->Work();
  99. }
Tags: OOP
Add Comment
Please, Sign In to add comment