Was ist der unterschied zwischen Header- und den Source-Files? Wieso schreibt man seinen Code (wie in Java) nicht einfach in einen Dateityp? Wieso steht in C++ eine Klasse mal in einer .cpp, mal in einer .h Datei?
Wieso werden Dialoge mit der Endung .rc gespeichert? Was hat das für einen Sinn? Ein Dialog wird (ich habe keine Ahnung) wie in Java doch auch einfach Code sein und in einer normalen Datei stehen ...
Hallo,
das zerlegen einer Klasse in eine Header- (*.h) und eine Source-Datei (*.c) wird auch deshalb gemacht, um die Schnittstelle von der Implementierung zu trennen.
Die Source-Datei einer Klasse A inludiert immer die Header-Datei (Export-Schnittstelle). Somit ist die Source-Datei von der Header-Datei abhängig, da sie die Header-Datei implementieren muss.
Wenn jetzt eine Klasse B die Klasse A verwenden möchte, includiert die Source-Datei der Klasse B die Header-Datei von Klasse A. Somit ist die Implementierung der Klasse A (Source-Datei) von der Implementierung der Klasse B komplett entkoppelt und kann bei bedarf durch eine andere Implementierung ausgetauscht werden.
Dieses Austauschen von Implementierungen ist z. B. dann von Vorteil wenn es sich um Klassen handelt, die direkt auf einer Hardware arbeiten, betriebssystemspezifische Bibliotheken verwenden oder ein bestimmten Kommunikations- oder Datenbank-Protokoll verwenden. Somit lässt sich eine Anwendung durch das Austauschen von Implementierungen systematisch auf eine andere Hardware-Plattform oder auf ein anderes Betriebssystem portieren oder die Übertragung und Speicherung von Daten kann durch andere Konzepte erfolgen.
Es ist auch darauf zu achten, dass in der Header-Datei auch nur das steht, was den Aufrufer der Klasse auch interessiert. In C hab ich es schon oft erlebt, dass sämtliche typedefs und defines in das Header-File geschrieben wurden. Das ist natürlich nicht richtig. Nur das was aussen sichtbar sein soll, kommt in die Header-Datei.
Durch dieses Konzept der Programmiersprache C lässt sich bei richtiger Anwendung eine loose Kopplung der entstehenden Software erreichen. Ein loose Kopplung trägt zu einer hohen Qualität der Software bei ...
Du solltest auch mal versuchen in JAVA Interfaces zu verwenden, wenn es sinnvoll ist.
Gruß
Tikonteroga