title: Why are private members/methods defined in the interface?
body: <p>I've always been confused by the fact that most OOP languages (or rather, C++) make you define private methods/members in the interface (by interface I mean the class declaration - seems like I was confused). Isn't this showing the implementation details of the class and going against the idea of encapsulation? </p>
  
  <p>Is there a good reason for this that I've been missing?</p>