Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- template <class T, class P>
- class CPair
- {
- private:
- T first;
- P second;
- public:
- CPair()
- {
- first = T();
- second = P();
- }
- CPair(const T & tfirst, const P & tsecond)
- {
- first = tfirst;
- second = tsecond;
- }
- CPair(const CPair& p)
- {
- first = p.first;
- second = p.second;
- }
- std::ostream& Otput(std::ostream& toStream)const
- {
- toStream << "(" << first << "," << second << ")" << "|n";
- return toStream;
- }
- friend std::ostream & operator << (std::ostream & toStream, const CPair & p)
- {
- return p.Otput(toStream);
- }
- friend std::istream & operator >> (std::istream & fromStream, CPair & p)
- {
- return p.Input(fromStream);
- }
- bool operator < (const CPair & p)
- {
- if (second < p.second)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- bool operator == (const CPair & p)
- {
- return ((second == p.second) ? true : false); //sukraten operator "if" chuli weee
- }
- CPair operator + (const CPair & p)
- {
- CPair temp(first + p.first, second + p.second);
- return temp;
- }
- CPair & operator = (const CPair & p)
- {
- first = p.first;
- second = p.second;
- return *this;
- }
- };
- int main()
- {
- CPair <int, int> a(4, 3), b(6, 7), c;
- c = a + b;
- std::cout << c;
- CPair<std::string, std::string> x("gsi 16v", "nachalnika na selo kopitovo"), y("gosho rednika", "opel astra h"), z;
- z = x + y;
- std::cout << z;
- CPair<CPair<std::string, std::string>, int>
- k(CPair < std::string, std::string>("batkoto golqm", "batencetooo"), 5),
- l(CPair < std::string, std::string>("opela mn varvi batee", "c20xe"), 5),
- m;
- m = k + l;
- std::cout << m;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement