title: What's the difference between a const member function and a non-const member function?
body: <p>I am very confused about the const version and non-const version member function like below:</p>
  
  <pre><code>value_type&amp; top() { return this.item }
  const value_type&amp; top() const { return this.item }
  </code></pre>
  
  <p>What is the difference between these two functions? In what situation would they be used?</p>