opérateurs surchargés

Bonjour à tous.
Je rencontre un petit soucis sur la surcharge d'opérateur.
C'est un domaine de programmation que j'utilise depuis peu.
Voici un extrait de code :
https://pastebin.com/NT7X6Zuh
Pour avoir le code complet :

TimeStampOBJ permet de stocker la valeur de temps au delà de uint32_t en microseconde en utilisant des objets de type TimeOBJ. Fonctionne très bien.

Cependant, je souhaiterais implémenter l'opérateur =
Afin de remplacer l'appel de la méthode get() qui renvoie un objet TimeOBJ :
TimeOBJ now_value = objTimeStampOBJ.get()
Deviendrait :
TimeOBJ now_value = objTimeStampOBJ;

J'ai l'erreur :
Operande are TimeOBJ and TimeStampOBJ

J'ai justement suivi des tutos, cours et guidance sur internet pour implémenter ses opérateurs surchargés et, du reste, [ ], =, +=, -=, ==, ++, --, <, >, <=, >= sont implémentés et fonctionnels dans la classe TimeOBJ.
Cependant, je ne récupère qu'une valeur à zéro sur l'opérateur = dans la classe TimeStampOBJ. Je sais que je suis passé à côté de quelque chose mais j'ai trop la tête dedans et je vois plus rien...

Aussi, dans l'opérateur += ou -= je ne comprends pas pourquoi certain tutos indiquent que la méthode doit renvoyer l'objet alors que la méthodes s'applique sur les variables privée même de l'instanciation et de plus, mes méthodes en void fonctionnent.

PS: je suis sur mon téléphone (c'est pas évident)