I made the following operator overloading test:
#include <iostream>
#include <string>
using namespace std;
class TestClass
{
    string ClassName;
    public:
    TestClass(string Name)
    {
        ClassName = Name;
        cout << ClassName << " constructed." << endl;
    }
    ~TestClass()
    {
        cout << ClassName << " destructed." << endl;
    }
    void operator=(TestClass Other)
    {
        cout << ClassName << " in operator=" << endl;
        cout << "The address of the other class is " << &Other << "." << endl;
    }
};
int main()
{
    TestClass FirstInstance("FirstInstance");
    TestClass SecondInstance("SecondInstance");
    FirstInstance = SecondInstance;
    SecondInstance = FirstInstance;
    return 0;
}
The assignment operator behaves as-expected, outputting the address of the other instance.
Now, how would I actually assign something from the other instance? For example, something like this:
void operator=(TestClass Other)
{
    ClassName = Other.ClassName;
}
 
     
     
     
     
     
    