Why is Stack::top() a const member function? 
<pre><code>template &lt;typename T&gt; 
class Stack { 
  private: 
    std::vector&lt;T&gt; elems;  // elements 

  public: 
    Stack();               // constructor 
    void push(T const&amp;);   // push element 
    void pop();            // pop element 
    T top() const;         // return top element 
}; 
</code></pre>

<p>Why is top() a constant function? I think every stack should have it's own top element, and so to access it a non-constant top() function. Am I wrong?</p>
