Object Classe::function(params) const
est une méthode en lecture seule (<=> qui n'a pas le droit de modifier les attributs)
const Object Classe::function(params)
renvoit un Object constant
tu peux avoir sans problème une méthode du genre
const Object Classe::function( const Object2* const objName) const
renvoit un Object constant, paramètre objName n'a pas le droit dêtre modifié (ni l'objet Object2 pointé par objName), et enfin la fonction "Classe::function" n'a accès aux attributs de la classe qu'en lecteure seule.
Voilà.
Pour le reste du post, je n'ai pas le temps de le lire maintenant.