const questions

When given the declaration:
bool equalTime(const clockType$ otherClock) const;

I understand the const keyword in the formal parameter list is ensuring that the parameter otherClock is not going to be changed. What I don't understand is:

a) Why the function itself has a second const declaration?
b) Does the precedence of the keyword matter? i.e.

const bool equalTime(...);
bool const equalTime(...);
bool equalTime(...) const;

Do these do the same thing? Or is there a rhyme and reason to the positioning?

Thank you
Here's the same question already answered:
Topic archived. No new replies allowed.