globale Klasse definieren.....
-
Also ich lese mich grad ein in die objektorientierte Programmierung....
Jetzt habe ich da einige Unklarheiten, die ich durch mein Buch lesen auch nicht lösen kann.Und zwar habe in eine Form. Diese Form greift auf eine Source.cpp & Source.h Datei zu. In der Source.cpp Datei habe ich eine Klasse definiert.
Source.cppclass BildInfo { //bla bla bla }
In der Source.h Datei gebe ich diese Klasse nochmal an. ( So mache ich das ja auch bei Funktionen)
Jetzt kann ich in der Form, also in der Unit1.cpp Datei auf die Klasse zurückgreifen weil ich in der Unit1.cpp Datei "#include "Source.cpp" geschrieben habe. Das paßt soweit.
Wie kann ich aber eine Klasse so initialisieren das ich IMMER UND ÜBERALL in der Form auf sie zugreifen kann????? Das bekomm ich nicht hin.
Ich hab es wie bei normalen Variablen versucht in der Unit1.h Datei die Klasse unter public zu definieren aber das mag der Kompiler nicht.....
Also nochmal die Frage:
Wie kann ich eine Klasse für eine bestimmte Form definieren sodass ich überall auf diese Klasse in der Form zugreifen kann??? Die Klasse ist dabei in eine Source.cpp Datei ausgegliedert.Wäre cool wenn ihr da was wüßtet weil ich bin jetzt nur noch am ausprobieren...
Hoffe ich hab mich einigermaßen ausgedrückt....Mfg Casicas
-
Niemals cpp-Dateien inkludieren! Du musst nur den Header inkludieren (und das dann überall, wo der Typ bekannt sein muss - sprich wo du ihn einsetzen willst).
-
Hallo
Und zwar habe in eine Form. Diese Form greift auf eine Source.cpp & Source.h Datei zu. In der Source.cpp Datei habe ich eine Klasse definiert.
Source.cpp ...
In der Source.h Datei gebe ich diese Klasse nochmal an. ( So mache ich das ja auch bei Funktionen)Nur um das noch mal richtig zu stellen : In die Header-Datei gehört nur die Definition deiner Klasse. Die Implementation der Methoden deiner Klasse gehören in die Implementationsdatei.
Jetzt kann ich in der Form, also in der Unit1.cpp Datei auf die Klasse zurückgreifen weil ich in der Unit1.cpp Datei "#include "Source.cpp" geschrieben habe
Schonmal falsch. Niemals Implementationen includen, immer nur Header. Wenn du Header und Implementation ordentlich getrennt hast (Siehe Punkt 1), klappt das auch.
Ich hab es wie bei normalen Variablen versucht in der Unit1.h Datei die Klasse unter public zu definieren aber das mag der Kompiler nicht.....
"aber das mag der Kompiler nicht" ist keine Ausreichende Fehlerbeschreibung. Grundsätzlich ist dein Weg zur Deklaration einer Membervariable richtig. Vermutlich hast du aber den Include auf deine Klasse nicht im Form-Header, sondern in der Form-Implementation. Deshalb ist deine Klasse im Form-Header auch noch unbekannt. Verschieb das Include in den Form-Header.
bis bald
akari