Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- template<typename T1, typename T2>
- class base
- {
- private:
- T1 value1;
- T2 value2;
- public:
- base(T1 valueOne, T2 valueSecond) :value1{ valueOne }, value2{ valueSecond }{}
- void setValue1(T1 value) { value1 = value; }
- void setValue2(T2 value) { value2 = value; }
- T1& getValue1() { return value1; }
- T2& getValue2() { return value2; }
- };
- template<class T1, class T2,class T3,class T4>
- class child : public base<T1, T2>
- {
- private:
- T3 value3;
- T4 value4;
- public:
- child(T1 valueOne, T2 valueSecond, T3 valueThird, T4 valueForth) :base{ valueOne,valueSecond }, value3{ valueThird }, value4{ valueForth }{}
- void trySetValue1(T1 value) { setValue1(value); }
- void trySetValue2(T2 value) { setValue2(value); }
- void setValue3(T3 value) { value3 = value; }
- void setValue4(T4 value) { value4 = value; }
- T1& tryGetValue1() { return getValue1(); }
- T2& tryGetValue2() { return getValue2(); }
- T3& getValue3() { return value3; }
- T4& getValue4() { return value4; }
- };
- template<class T1,class T2,class T3,class T4,class T5,class T6>
- class child2 :public child<T1,T2,T3,T4>
- {
- private:
- T5 value5;
- T6 value6;
- public:
- child2(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) :child{ value1,value2,value3,value4 }, value5{ value5 }, value6{ value6 } {}
- void tryTrySetValue1(T1 value) { trySetValue1(value); }
- void tryTrySetValue2(T2 value) { trySetValue2(value); }
- void trySetValue3(T3 value) { setValue3(value); }
- void trySetValue4(T4 value) { setValue4(value); }
- void setValue5(T5 value) { value5 = value; }
- void setValue6(T6 value) { value6 = value; }
- T1& tryTryGetValue1() { return tryGetValue1(); }
- T2& tryTryGetValue2() { return tryGetValue2(); }
- T3& tryGetValue3() { return getValue3(); }
- T4& tryGetValue4() { return getValue4(); }
- T5& getValue5() { return value5; }
- T6& getValue6() { return value6; }
- };
- int main()
- {
- base<int, double> baseType{ 1,5.5 };
- child<int, double, char, int>{2, 6.6, 'a', 100};
- child2<int,double,char,int,float,float>{8, 3.3, 'b',6,85.9,99.9};
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement