overloaded assignment opperator.... WTF?!?!?

Ok, so I am in data structures class. On current program I have to

"Your assignment is to build a complete List class using the linked-list implementation as described in section 6.5 of your textbook.For this assignment, I want you to give me a copy of your program output (output.txt).Print enough information to show that your program is working correctly.I have provided the attached header file for the List class(linked-list specification). You must include implementations for all the functions listed in the header file.
constructor, copy constructor, destructor, overloaded assignment operator, getSize,empty, insert,erase,display,find"

Before worrying about all of that, I have to remember the basics. First confusion, is overloaded assignment operator. Here is code from her last header and implementation file for previous project. Can someone please help break the lines down for me, and help me understand what an assignment operator is, how to overload, what it does?
Thank you!!

Then, if you want to give me any pointers on the rest of my current project, that would also be awesome :)

FROM HEADER FILE

/***** Assignment operator *****/
List & operator=(const List & rightHandSide);
/*----------------------------------------------------------------------
Assign a copy of a List object to the current object.

Precondition: none
Postcondition: A copy of rightHandSide has been assigned to this
object. A reference to this list is returned.
-----------------------------------------------------------------------*/

FROM IMPLEMENTATION FILE

//--- Definition of assignment operator
List & List::operator=(const List & rightHandSide)
{
if (this != &rightHandSide) // check that not self-assignment
{
//-- Allocate a new array if necessary
if (myCapacity != rightHandSide.myCapacity)
{
delete[] myArray;
myCapacity = rightHandSide.myCapacity;
myArray = new(nothrow) ElementType[myCapacity];

if (myArray == 0) // check if memory available
{
cerr << "*Inadequate memory to allocate stack ***\n";
exit(1);
}
}
//--- Copy rightHandSide's list elements into this new array
mySize = rightHandSide.mySize;
for(int i = 0; i < mySize; i++)
myArray[i] = rightHandSide.myArray[i];
}
return *this;
}
closed account (48T7M4Gy)
https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp7_OperatorOverloading.html
Well ok...
closed account (48T7M4Gy)
?
Topic archived. No new replies allowed.