Advertisement
Andrey_ZoZ

Untitled

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