Sinn und Zweck cpp und h

kaddi1987

Grünschnabel
Hallo zusammen,
ich würde gerne wissen, was der Sinn und Zweck der Trennung von Deklaration und Definition in C++ durch Aufteilung einer einzelnen C++-Datei in ein Implementation-File (.cpp) und in ein Header-File (.h) ist.
 
Hi und Willkommen bei tutorials.de :)

Bei mehreren Cpp-Dateien, die gegenseitig ihre enthaltenen Funktionen verwenden,
müsste man theoretisch Namen/Parameter/etc. jeder Funktion/Variablen aus anderen Cpps,
die man in einer Cpp verwenden will, am Anfang der Cpp hinschreiben.

zB.eine A.cpp:
C++:
int funktion1(int a)
{
   ...
}

int funktion2(int a, int b)
{
   ...
}

int funktion3(int a, int b, int c)
{
   ...
}
Wenn das Programm nicht nur in der A.cpp ist, sondern auf drei Cpps aufgeteilt ist,
und die B.cpp und C.cpp die drei Funktionen von A brauchen,
müsste man am Anfang von B und C sowas schreiben:
C++:
int funktion1(int a);
int funktion2(int a, int b);
int funktion3(int a, int b, int c);
Wenn man ein großes Programm in 100 Dateien aufteilt,
jede Datei 50 Funktionen hat
und Funktionen aus jeweils 30 anderen der 100 Dateien braucht,
wird sowas sehr lustig zum Aufschreiben...

Deshalb macht man für jede cpp-Datei eine h-Datei
(könnte statt h auch ebensogut xy haben, einfach eine Textdatei),
die die Funktionsliste für genau diese cpp-Datei einmal enthält.

In allen anderen Cpps bindet man diese h-Datei mit #include ein.
#include ist ca. so, als würde man statt jedem #include die ganze Datei reinkopieren.
Damit hat man mit einer Zeile jeweils die ganze Funktionsliste.
Spart Schreiberei/Kopiererei und ist viel übersichtlicher.

...
Solange es im Programm nur eine cpp-Datei gibt, hat es keinen wirklichen Sinn für das Programm.
Sollte man aber trotzdem gleich machen,
falls das Programm mal erweitert wird und eine zweite Cpp bekommt...

Gruß
 
Zurück