Advertisement
Ejejejejejjr

Делегирующие конструкторы

Dec 27th, 2020
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. //делегирование конструкторов сокращает количество кода при создании их перегрузок
  5.  
  6.  
  7. class Human
  8. {
  9. public:
  10.    
  11.     //первая перегрузка конструктора
  12.     Human(std::string name)
  13.     {
  14.         this->name = name;
  15.         this->age = 0;
  16.         this->weight = 0;
  17.     }
  18.     //вторая перегрузка, наследующая прошлую, что и образует делегирующий конструктор
  19.     Human(std::string name, int age) : Human(name)
  20.     {
  21.         this->age = age;
  22.     }
  23.     //третья перегрузка, наследующая прошлую, что образует еще один делегирующий конструктор
  24.     Human(std::string name, int age, int weight) : Human(name, 100)
  25.     {
  26.         this->weight = weight;
  27.     }
  28.    
  29.     void Print()
  30.     {
  31.         std::cout << name << std::endl << age << std::endl << weight;
  32.     }
  33.    
  34.    
  35. private:
  36.     std::string name;
  37.     int age;
  38.     int weight;
  39. };
  40.  
  41.  
  42. int main(int argc, char *argv[])
  43. {
  44.     setlocale(LC_ALL, "Rus");
  45.     srand(time(NULL));
  46.    
  47.     Human human("Владимир", 10);
  48.     human.Print();
  49.    
  50.    
  51.     return 0;
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement