It's part of operator overloading, so not really to do with strings unless you want it to be. It's more general that that. Basically, it's for getting the = symbol to do what you want, which is generally to make this equal to that.
The first Class& says that the function returns a reference to the class object.
The const in the parameter list is to prevent the function from changing the object on the right-hand-side of the = sign, and the & in the parameter list passes a reference rather than a copy, which is more efficient on memory/cpu usage.