Меня всегда смущало то, что большинство языков ООП (вернее, С++) заставляют вас определять частные методы/члены в интерфейсе (по интерфейсу я имею в виду объявление класса), похоже, я был смущен). Разве это не показывает детали реализации класса и противоречит идее инкапсуляции?
Есть ли веская причина для этого, что я отсутствовал?