Powiedziałbym, że pliki nagłówkowe nie są świetne, ponieważ mętnią interfejs i implementację. Ogólnym celem programowania, a zwłaszcza OOP, jest zdefiniowanie interfejsu i ukrycie szczegółów implementacji, ale plik nagłówkowy C ++ pokazuje zarówno metody, dziedziczenie, jak i elementy publiczne (interfejs), a także metody prywatne i elementy prywatne (część wdrożenia). Nie wspominając o tym, że w niektórych przypadkach wstawiasz kod lub konstruktory w pliku nagłówkowym, a niektóre biblioteki zawierają kod szablonu w nagłówkach, który naprawdę miesza implementację z interfejsem.
Uważam, że pierwotnym celem było umożliwienie kodowi korzystania z innych bibliotek, obiektów itp. Bez konieczności importowania całej zawartości skryptu. Wystarczy nagłówek, aby skompilować i połączyć. Oszczędza w ten sposób czas i cykle. W takim przypadku jest to przyzwoity pomysł, ale jest to tylko jeden ze sposobów rozwiązania tych problemów.
Jeśli chodzi o przeglądanie struktury programu, większość IDE zapewnia taką możliwość, a istnieje wiele narzędzi, które wykopią interfejsy, przeprowadzą analizę kodu, dekompilację itp., Abyś mógł zobaczyć, co dzieje się pod okładkami.
A dlaczego inne języki nie implementują tej samej funkcji? Cóż, ponieważ inne języki pochodzą od innych ludzi, a ci projektanci / twórcy mają inną wizję tego, jak powinny działać.
Najlepszą odpowiedzią jest trzymanie się zadania, które musisz wykonać, i sprawia, że jesteś szczęśliwy.