I am trying to modify the Add function to represent operator overloading.
#include <iostream>
using namespace std;
template <class T>
class cpair
{
public:
    cpair(T x = 0, T y = 0) { A = x; B = y; }
    void print()
    {
        cout << A << " " << B << endl;
    }
    T A, B;
};
template <class T>
void Add(cpair<T> A1, cpair<T> A2, cpair<T> &R)
{
    R.A = A1.A + A2.A;
    R.B = A1.B + A2.B;
}
int main()
{
    cpair<int> A1(4, 5), A2(1, 3), result;
    Add(A1, A2, result);
    result.print();
    return 0;
}
I am learning operator overloading, but I don't think I have implemented it correctly. The error I get is:
'operator= must be a member function'.
template <class T>
void operator=(const cpair<T> &A1, cpair<T> &A2, cpair<T> &R) { 
       R.A = A1.A + A2.A;
       R.B = A1.B + A2.B;
}
int main()
{
    cpair<int> A1(4, 5), A2(1, 3), result;
    operator(A1, A2, result);
    result.print();
}
How do you go about modifying the Add function to represent operator overloading and then call the function in Main? Thank you.
 
     
     
     
    