#include <iostream>
#include <string>
using namespace std;
template < typename T >
class Calculator
{
public :
Calculator () {}
~Calculator () {}
T add(const T& a, const T& b);
};
template <typename T>
T Calculator<T>::add(const T& a, const T& b)
{
return (a + b);
}
template <>
string Calculator<string>::add(const string& a, const string& b)
{
return (a + " " + b);
}
int main()
{
Calculator<string> ccs;
cout << ccs.add("a", "b") << endl;
Calculator<int> cci;
cout << cci.add(1, 2);
}