title: Is using "this" for all member functions and attributes bad practice?
body: <p>Recently I posted a piece of my code here and got a comment (unrelated to the original question) that <strong>using <code>this</code> for <em>all member functions and attributes of a class</em> is "not simply a matter of personal coding style, it is bad practice"</strong>. Unfortunately, the person refused to elaborate and told me to look it up myself.</p>
  
  <p>I have used Google a bunch (but it's really hard looking up anything with "this" as a keyword), and looked around here, but I only found <a href="https://stackoverflow.com/q/4491234/884412">some</a> <a href="https://stackoverflow.com/q/577243/884412">examples</a> of when <code>this</code> <em>has to be</em> used.</p>
  
  <p>I know the situations where using <code>this</code> is unavoidable (parameter / variable with the same name, template inheritance etc.), but in time <em>I started using <code>this</code> wherever possible because I can find my way around my code easier and faster</em>. My reasons include:</p>
  
  <ul>
  <li>quick check if the function <code>f</code> should be a member function at all: if there is no <code>this</code> in the code, it can be taken out of the class</li>
  <li>quick check if <code>f</code> can be a <code>const</code> function: if no <code>this</code> on the left side, most probably can be made <code>const</code> (not always but I find it useful when skimming)</li>
  <li>quick check if the object is "changing" itself in a "predefined" way in <code>f</code>, or if it's a composite member function (a member method called with <code>this</code> vs. an "outside" algorithm operating on the object without this)</li>
  <li>debugging; i.e. if a member attribute gets assigned the wrong value at any point, I have to concentrate on the lines containing <code>this</code> to find the problem, as other lines do not change the object</li>
  </ul>
  
  <p>Frankly, the comment about this being "bad practice" rattled me a bit. But, one comment in itself does not mean much, so I would like to ask <strong>is there anything inherently bad with using <code>this</code> consistently for <em>all</em> member functions and attributes?</strong> If so, what are <strong>the major drawbacks</strong> that put it past a (possibly clumsy, unpopular or not-widespread) personal style, and place it in the "bad practice" category?</p>