C++ examples for template:template class
Using Partial Template Specialization with class
#include <iostream> using namespace std; class MyClass/*from ww w.ja v a2s.com*/ { private: int m_Value{ 0 }; public: MyClass() = default; MyClass(int value) : m_Value{ value } { } MyClass(int number1, int number2) : m_Value{ number1 + number2 } { } int GetValue() const { return m_Value; } }; template <typename T> T Add(const T& a, const T& b) { return a + b; } template <> MyClass Add(const MyClass& myClass1, const MyClass& myClass2) { return MyClass(myClass1.GetValue(), myClass2.GetValue()); } 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; } template <> void Print(const MyClass& value1, const MyClass& value2, const MyClass& result) { cout << "The result of adding" << endl; cout << value1.GetValue() << endl; cout << "to" << endl; cout << value2.GetValue() << endl; cout << "is" << endl; cout << result.GetValue(); 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; }