Advertisement
35657

Untitled

Feb 24th, 2024
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.51 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. struct date {
  7.     int day_;
  8.     int month_;
  9.     int year_;
  10. };
  11.  
  12. class person {
  13.  
  14. public:
  15.     person(const int id, const char* last_name, const char* first_name, const char* middle_name, const date birthday) : id_(id), last_name_(new char[strlen(last_name) + 1]), first_name_(new char[strlen(first_name) + 1]), middle_name_(new char[strlen(middle_name) + 1]), birthday_(birthday) {
  16.         strcpy(last_name_, last_name);
  17.         strcpy(first_name_, first_name);
  18.         strcpy(middle_name_, middle_name);
  19.         number_person_++;
  20.     }
  21.  
  22.     person() : person(111111, "Ivanov", "Ivan", "Ivanovich", { 1,1,1993 }) {}
  23.  
  24.     person(const person& other) : person(other.id_, other.last_name_, other.first_name_, other.middle_name_, other.birthday_) {}
  25.  
  26.     void print() {
  27.         cout << last_name_ << " " << first_name_ << " " << middle_name_ << ", " << birthday_.day_ << '.' << birthday_.month_ << '.' << birthday_.year_ << ", id - " << id_ << endl;
  28.     }
  29.  
  30.     static int get_number_person() {
  31.         return number_person_;
  32.     }
  33.  
  34.     ~person() {
  35.         delete[] last_name_;
  36.         delete[] first_name_;
  37.         delete[] middle_name_;
  38.         number_person_--;
  39.     }
  40.  
  41.     void set_id(const int id) {
  42.         id_ = id;
  43.     }
  44.  
  45.  
  46.     void set_last_name(const char* last_name) {
  47.         delete[] last_name_;
  48.         last_name_ = new char[strlen(last_name) + 1];
  49.         strcpy(last_name_, last_name);
  50.     }
  51.  
  52.     void set_first_name(const char* first_name) {
  53.         delete[] first_name_;
  54.         first_name_ = new char[strlen(first_name) + 1];
  55.         strcpy(first_name_, first_name);
  56.     }
  57.  
  58.     void set_middle_name(const char* middle_name) {
  59.         delete[] middle_name_;
  60.         middle_name_ = new char[strlen(middle_name) + 1];
  61.         strcpy(middle_name_, middle_name);
  62.     }
  63.  
  64.     void set_birthday(const int day, const int month, const int year) {
  65.         birthday_.day_ = day;
  66.         birthday_.month_ = month;
  67.         birthday_.year_ = year;
  68.     }
  69.  
  70. private:
  71.     int id_; // идентификационный номер
  72.     char* last_name_; // фамилия
  73.     char* first_name_; // имя
  74.     char* middle_name_; // отчество
  75.     date birthday_; // дата рождения
  76.     static int number_person_;
  77. };
  78.  
  79. int person::number_person_ = 0;
  80.  
  81. int main() {
  82.     person p1(222222, "Petrov", "Petr", "Petrovich", {23,8,1997});
  83.  
  84.     cout << person::get_number_person() << endl;
  85.  
  86.     person p2;
  87.  
  88.     person p3(p1);
  89.  
  90.     cout << person::get_number_person() << endl;
  91.  
  92.     p1.print();
  93.     p2.print();
  94.  
  95.     p3.set_id(333333);
  96.     p3.set_last_name("Sidorov");
  97.     p3.set_first_name("Sidor");
  98.     p3.set_middle_name("Sidorovich");
  99.     p3.set_birthday(11, 1, 1995);
  100.  
  101.     p3.print();
  102.  
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement