C++ examples for template:template function
Add + and << operators to a class to work with template function
#include <iostream> using namespace std; class MyClass/*from w w w . j a va 2s . com*/ { friend ostream& operator <<(ostream& os, const MyClass& myClass); private: int m_Value{ 0 }; public: MyClass() = default; MyClass(int value): m_Value{ value } { } MyClass(int number1, int number2): m_Value{ number1 + number2 } { } MyClass operator +(const MyClass& other) const { return m_Value + other.m_Value; } }; ostream& operator <<(ostream& os, const MyClass& myClass) { os << myClass.m_Value; return os; } template <typename T> T Add(const T& a, const T& b) { return a + b; } template <typename T> void Print(const T& value1, const T& value2, const T& result) { cout << "The result of adding" << endl; cout << value1 << endl; cout << "to" << endl; cout << value2 << endl; cout << "is" << endl; cout << result; cout << endl << endl; } int main(int argc, char* argv[]) { const MyClass number1{ 1 }; const MyClass number2{ 2 }; const MyClass intResult{ Add(number1, number2) }; Print(number1, number2, intResult); return 0; }