Was gehört in welche Header-Datei
-
Guten Morgen allerseits.
Ich habe Probleme damit, was ich in welcher HeaderDatei erklären muss.Auszug aus haupt.cc :
// includes #include "dbase.hh" #include "labor_utils.hh" // u.a getNormalWert(...) dBase normale; // Klasse dBase in dbase.cc und dBase.hh int main () { // dieverser Code string normalWert; normalWert = getNormalWert((string) suchBegriff,...); // mehr code }
Asuzug aus Labor_utils.cc
#include "labor_utils.hh" string getNormalWert(string cAssay, string blutDatum, string cSex, int blutTage ){ normale.seek(cAssay); if ( ! normale.found()) return (" "); // nicht gefunden == leerer String // usw }
labor_utils.cc weiß nun nichts über "normale". Ich hab dann schon #include "dbsase.hh" eingefügt, doch dann gibt es "Syntaxerror in dbase.hh"
Wie erreiche ich nun, daß labor_utils a) den Typ DBase kennt, un b) das Object "normale" ?
Ich raffe es nicht
Hanns
-
zu a) Mach in "labor_utils.hh" eine Forward-Dekleration:
class DBase;
-
normal ist es so, dass es zu jeder cpp datei eine h datei gibt (und andersrum). der compiler erkennt das automatisch. die beiden datein muessen gleich heissen. jetzt musst du in jeder datei, wo du eine funktion aus einer anderen hernehmen willst, die h datei einbinden.
-
alsooooo - automatisch "erkennt" der Compiler da gar nix, und die Namen sind ihm völlig egal. Die Header müssen explizit mit "#include" eingebunden werden.
Du verwechselst das vermutlich mit dem MSVC-Klassenassistenten: der erzeugt für jede damit erstelle Klasse automatisch eine ".h" und ".cpp"- Datei.