title: Use const wherever possible in C++?
body: <p>As stated in book <em>Effective C++</em>: "Use const whenever possible.", one would assume that this definition: <code>Vec3f operator+(Vec3f &amp;other);</code> would be better defined as <code>Vec3f operator+(const Vec3f &amp;other) const;</code> or even better as <code>const Vec3f operator+(const Vec3f &amp;other) const;</code>.</p>
  
  <p>Or an example with 5 <em>const</em> keywords: <code>const int*const Foo(const int*const&amp;)const;</code></p>
  
  <p>Of course, you should only include <em>const</em> where there can be one. What Im asking is it a good practice to use them whenever possible? While it does give you more error safe code, it can get quite messy. Or should you, for example, ignore pointer and reference const (unless you really need it), and use it only on the types itself, as in <code>const int* Foo(const int* parameter)const;</code>, so it doesnt end up too messy?</p>
  
  <p>Additional info:
  <a href="http://duramecho.com/ComputerInformation/WhyHowCppConst.html">http://duramecho.com/ComputerInformation/WhyHowCppConst.html</a></p>
  
  <p>Thanks in advance!</p>