Ich bin ein bisschen neu in der groß angelegten Softwareentwicklung in C ++ und habe mich auf der Design-Seite gefragt.
Ich habe diese Frage gelesen und dachte, dass C ++ - Header-Dateien , sobald wir konstante Definitionen und andere triviale Dinge überwunden haben, insgesamt nur API-Definitionen sind :
Sie definieren, was andere Programmierer (oder Sie selbst aus anderen Modulen) verwenden können (Klassen, öffentliche Funktionen), aber es sollte keine private Klasse oder Funktion darin definiert werden. Es ist, als ob die Header-Datei die Abstraktionen (Schnittstellen ...) definiert und die Quelldatei sie implementiert. Sobald die Quelldatei kompiliert ist, werden die Implementierungsdetails ausgeblendet und bleiben die öffentlich verfügbaren Header, die definieren, was das Modul tun kann.
Ich war der Meinung, dass diese Ansicht der Trennung von Header- und Quelldateien viel einfacher zu verstehen und zu befolgen war als die üblichen Erklärungen, da man sich nur vorstellen kann, dass es sich XXX
um öffentlich verfügbares API-Material handelt oder dass es sich um ein Wurstherstellungsdetail handelt, das in einem versteckt ist unbekannte Quelldatei? "
Ist mein mentales Modell von Header-Dateien ungefähr korrekt? Was habe ich verpasst ?