title: Is there any reason not to make a member function virtual?
body: <p>Is there any real reason <strong>not</strong> to make a member function virtual in C++?  Of course, there's always the performance argument, but that doesn't seem to stick in most situations since the overhead of virtual functions is fairly low.</p>
  
  <p>On the other hand, I've been bitten a couple of times with forgetting to make a function virtual that <em>should</em> be virtual.  And that seems to be a bigger argument than the performance one.  So is there any reason not to make member functions virtual by default?</p>