Když si to stejné zkusíš napsat objektově (přes class), tak uživateli cpeš i všechny interní informace v hlavičkovém souboru. to mu je 1) na nic 2) každá změna si vyžaduje překlad všech zdrojáků, co na tom headeru závisí (imho horší problém u větších projektů). Takže to je ukrývání informace, ale ne přes nějaká klíčová slova, ale vlastností jazyka
Prosím vás, co dělám špatně, že už 20 let píši v C++, používám třídy, a nemám detaily o interních datech třídy v hlavičkových souborech?
Občas je to také dobré, protože když si třeba děláte přenositelnou knihovnu nad voláními API operačních systémů, tak zrovna nechcete třeba, aby ve Windows bylo v hlavičkovém souboru #include <windows.h>. Takže si třeba uděláte vysokoúrovňovou knihovnu pro práci s thready a třídy mají v interních datech tříd třeba handly na thready, semafory, mutexy a další. A přesto nejsou tyto zapsaní v hlavičkovém souboru a funguje to.
Prosím, zoufale prosím, co dělám špatně, že umím zapouzdřit v C++ data třídy lépe než strýček Bob?
Hlavně byste si měli uvědomit, že pokud něco umí C, tak C++ to umí také. Tvrzení "C umí něco lépe než C++" je dost nesoudné.