Advertisement
Andrey_ZoZ

Untitled

Aug 27th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4.  
  5. template<typename T1, typename T2>
  6. class base
  7. {
  8.  
  9. private:
  10.  
  11.     T1 value1;
  12.  
  13.     T2 value2;
  14.  
  15. public:
  16.  
  17.     base(T1 valueOne, T2 valueSecond) :value1{ valueOne }, value2{ valueSecond }{}
  18.  
  19.     void setValue1(T1 value) { value1 = value; }
  20.  
  21.     void setValue2(T2 value) { value2 = value; }
  22.  
  23.     T1& getValue1() { return value1; }
  24.  
  25.     T2& getValue2() { return value2; }
  26.  
  27. };
  28.  
  29.  
  30.  
  31. template<class T1, class T2,class T3,class T4>
  32. class child : public base<T1, T2>
  33. {
  34.  
  35. private:
  36.  
  37.     T3 value3;
  38.  
  39.     T4 value4;
  40.  
  41. public:
  42.  
  43.     child(T1 valueOne, T2 valueSecond, T3 valueThird, T4 valueForth) :base<T1, T2>{ valueOne,valueSecond }, value3{ valueThird }, value4{ valueForth }{}
  44.  
  45.     void setValue3(T3 value) { value3 = value; }
  46.  
  47.     void setValue4(T4 value) { value4 = value; }
  48.  
  49.     T3& getValue3() { return value3; }
  50.  
  51.     T4& getValue4() { return value4; }
  52.  
  53. };
  54.  
  55. template<class T1,class T2,class T3,class T4,class T5,class T6>
  56. class child2 :public child<T1,T2,T3,T4>
  57. {
  58. private:
  59.  
  60.     T5 value5;
  61.  
  62.     T6 value6;
  63.  
  64. public:
  65.  
  66.     child2(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) :child<T1,T2,T3,T4> { value1, value2, value3, value4 }, value5{ value5 }, value6{ value6 } {}
  67.  
  68.     void setValue5(T5 value) { value5 = value; }
  69.  
  70.     void setValue6(T6 value) { value6 = value; }
  71.  
  72.     T5& getValue5() { return value5; }
  73.  
  74.     T6& getValue6() { return value6; }
  75.  
  76. };
  77.  
  78.  
  79.  
  80. int main()
  81. {
  82.     base<int, double> baseType { 1,5.5 };
  83.     child<int, double, char, int> childType {2, 6.6, 'a', 100};
  84.     child2<int, double, char, int, float, float> child2Type {8, 3.3, 'b', 6, 85.9, 99.9};
  85.     std::cout << baseType.getValue1() <<"\n";
  86.     std::cout << baseType.getValue2() << "\n";
  87.     std::cout << "------------------------------\n";
  88.     std::cout << childType.getValue1() << "\n";
  89.     std::cout << childType.getValue2() << "\n";
  90.     std::cout << childType.getValue3() << "\n";
  91.     std::cout << childType.getValue4() << "\n";
  92.     std::cout << "------------------------------\n";
  93.     std::cout << child2Type.getValue1() << "\n";
  94.     std::cout << child2Type.getValue2() << "\n";
  95.     std::cout << child2Type.getValue3() << "\n";
  96.     std::cout << child2Type.getValue4() << "\n";
  97.     std::cout << child2Type.getValue5() << "\n";
  98.     std::cout << child2Type.getValue6() << "\n";
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement