Advertisement
35657

Untitled

Apr 30th, 2024
600
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #include <set>
  2. #include <string>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. // Человек
  9. class Person {
  10. public:
  11.     Person(string name, int age, string gender) : name_(name), age_(age), gender_(gender) {};
  12.  
  13.     string GetName() const {
  14.         return "Моё имя " + name_;
  15.     }
  16.     int GetAge() const {
  17.         return age_;
  18.     }
  19.     string GetGender() const {
  20.         return gender_;
  21.     }
  22.  
  23. private:
  24.     string name_;
  25.     int age_;
  26.     string gender_;
  27. };
  28.  
  29.  
  30.  
  31. // Программист. Знает несколько языков программирования
  32. class Programmer : public Person {
  33. public:
  34.     Programmer(string name, int age, string gender) : Person(name, age, gender) {}; // если нет конструктора по умолчанию, а есть параметризованный конструктор, то обязательно вызываем его
  35.  
  36.     void AddProgrammingLanguage(string language) {
  37.         programming_languages_.insert(language);
  38.     }
  39.     bool CanProgram(string language) const {
  40.         return programming_languages_.count(language);
  41.     }
  42.  
  43. private:
  44.     set<string> programming_languages_;
  45. };
  46.  
  47.  
  48. // Рабочий. Владеет несколькими специальностями
  49. class Worker : public Person {
  50. public:
  51.     Worker(string name, int age, string gender) : Person(name, age, gender) {};
  52.  
  53.     void AddSpeciality(string speciality) {
  54.         specialties_.insert(speciality);
  55.     }
  56.     bool HasSpeciality(string speciality) const {
  57.         return specialties_.count(speciality);
  58.     }
  59.  
  60. private:
  61.     set<string> specialties_;
  62. };
  63.  
  64. int main() {
  65.     setlocale(LC_ALL, "ru");
  66.     Programmer pr("Иван", 22, "man");
  67.     Worker wk("Гена", 23, "man");
  68.     pr.AddProgrammingLanguage("Java");
  69.     cout << boolalpha << pr.CanProgram("Java") << endl;
  70.     cout << pr.GetName() << " " << pr.GetAge() << endl;
  71.     cout << wk.GetName() << " " << wk.GetAge() << endl;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement