Often in the books I met the construction of the form:
void add_foo (const Foo &) const;
The book explains that it is better to use constant methods so that you can immediately see where things are changing and where not.
Should I pass an object by reference using the constant method? Or should it be better to simply transmit without reference and without const? Besides the reluctance to copy a large object into memory, I can’t think of a reason to use the “perverted” transmission by reference. In fact, we take a tool for transmission with the ability to change the original object and prohibit it. Is it worth doing this all the time? Maybe there are some more important reasons that I just do not know?