hilfe
-
hi,
ich habe ein Problem mit dem Einbinden von source files
ich habe 3 Files:
main.cpp
Modul.cpp
Header.h#include "stdafx.h" #include "Header.h" // meine globale Variablen int Test1=4; int Test2=5; int _tmain(int argc, _TCHAR* argv[]) { Fehler(); return 0; } void Test(int a, int b) { printf("Dies ist ein Test\n%d\n%d",a,b); }
Header.h
#ifndef _Header_h_ #define _Header_h_ void Test(int, int); void Fehler(void); #include "Modul.cpp" #endif
Modul.cpp
void Fehler(void) { Test1 = Test2 * Test2; Test(Test1, Test2); printf("noch nicht mal das klappt"); }
Worauf ich bei diesem Beispiel hinaus will, ist, dass ich auf
globale Variablen und Funktionen in main.cpp nicht in eingebundenen
source-Files zugreifen kannIrgendwie hab ich wohl etwas Grundlegendes beim Einbinden der Dateien
falsch gemacht oder habe einfach nen Verständnisfehler
(Bin von VB auf C++ umgestiegen und da sind globale Variablen in allen
Modulen abrufbar und wirklich global :p )Ich wäre euch sehr dankbar, wenn mir das jemand nochmal erklären könnte
oder mir wenigstens ne vernünftige Referenz zum Nachlesen angeben könnte.MfG
Anfänger
-
Hi erstmal bitte mach doch nen gescheiten Titel das nächste mal wenn du eine Frage hast.
2. wenn du C++ Code hast dann nimm doch auch Codetags für C++
und last but not least schau mal im Forum bevor du was fragst grad eben war nahezu die gleiche Frage hier
-
tut mir leid aber mit diesem Thread kann ich einfach nichts anfangen
-
na da steht drin du machst das ma besten mit set und get Funktionen und wie man den Mainframecastet. Was brauchst du noch für Infos??
-
Wandfliese schrieb:
Header.h
#ifndef _Header_h_ #define _Header_h_ void Test(int, int); void Fehler(void); #include "Modul.cpp" #endif
Also implementationen werden normalerweise nicht includiert. ( #include "Modul.cpp").
um deine beiden valiablen Test1 und Test2 global und auch in jeder Kompilationseinheit sichtbar zu machen sollte dein header.h so aussehen:#ifndef _Header_h_ #define _Header_h_ void Test(int, int); void Fehler(void); extern int Test1; // sind in Main.cpp extern int Test2; #endif
Trotzdem solltest du globale Variablen nicht verwenden. Mach dich mal über Singleton Klassen schlau.
Kurt
-
thx werd ich machen