Using it as a constant insures that you don't change any members of the class you are sending as an argument. in the case: "someClass::someClass(const someClass &a)" , you are ensuring that someClass does not alter any members of a.