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<T1, T2>{ valueOne,valueSecond }, value3{ valueThird }, value4{ valueForth }{}
- void setValue3(T3 value) { value3 = value; }
- void setValue4(T4 value) { value4 = value; }
- 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<T1,T2,T3,T4> { value1, value2, value3, value4 }, value5{ value5 }, value6{ value6 } {}
- void setValue5(T5 value) { value5 = value; }
- void setValue6(T6 value) { value6 = value; }
- T5& getValue5() { return value5; }
- T6& getValue6() { return value6; }
- };
- int main()
- {
- base<int, double> baseType { 1,5.5 };
- child<int, double, char, int> childType {2, 6.6, 'a', 100};
- child2<int, double, char, int, float, float> child2Type {8, 3.3, 'b', 6, 85.9, 99.9};
- std::cout << baseType.getValue1() <<"\n";
- std::cout << baseType.getValue2() << "\n";
- std::cout << "------------------------------\n";
- std::cout << childType.getValue1() << "\n";
- std::cout << childType.getValue2() << "\n";
- std::cout << childType.getValue3() << "\n";
- std::cout << childType.getValue4() << "\n";
- std::cout << "------------------------------\n";
- std::cout << child2Type.getValue1() << "\n";
- std::cout << child2Type.getValue2() << "\n";
- std::cout << child2Type.getValue3() << "\n";
- std::cout << child2Type.getValue4() << "\n";
- std::cout << child2Type.getValue5() << "\n";
- std::cout << child2Type.getValue6() << "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement