when you return a reference, you will be able tou chain the operators like this:
animal MyAnimal1, MyAnimal2, MyAnimal3; // Declarations
MyAnimal1 = animal(/*accepted constructor parameters*/); // here, both of the operator=() could work
MyAnimal3 = MyAnimal2 = MyAnimal1; // here, it must be a reference returned
in general, we prefer the synopsis **T& operator= (const T&)**... make your choice:)
TOXCCT >>> GEII power