Arbeien mit Klassen
-
Hallo,
ich komme eigentlich aus der Java Welt und mussm ich nun im Rahmen meines Studium mit c++ auseinanderseten.
Ich habe nun mehrere Klassen erstellt und versuche natürlich in KlasseA KlasseB zu verwenden. Das ist aber irgendwie gar nicht so leicht. In Java konnte ich, solang es im selben Package war die Klassen einfach verwenden. In C++ ist das wohl anders. Ich habe schon versucht mit include meine Klassen anzugeben, das hat aber auch nicht funktioniert.Beispiel:
KlasseA
class KlasseA { private: KlasseB test; public: KlasseA(void); ~KlasseA(void); };KlasseB
class KlasseB { public: KlasseB(void); ~KlasseB(void); };Was muss ich hier schreiben, sodass das Beispiel funktioniert?
Gruß hyperion
-
Hast du dich mal mit der "Objektorientierten Programmierung" beschäftigt? Wenn nicht, lies dich da erstmal was durch. Da wird sowas behandelt. Und gib mal bitte den richtigen Code.
-
zuckerlie schrieb:
Hast du dich mal mit der "Objektorientierten Programmierung" beschäftigt? Wenn nicht, lies dich da erstmal was durch. Da wird sowas behandelt.
Wenn du das sagst ...
-
hyperion1 schrieb:
und mussm ich nun im Rahmen meines Studium mit c++ auseinanderseten
Du musst nicht, du hast die Ehre zu dürfen.
Zum Code: Fehler seh ich keinen, aber die Ctoren und Dtoren scheinen unnötig.
-
Annahme:
KlasseA ist im Header File KlasseA.hpp definiert und die Methoden von ihr im Source File KlasseA.cpp.
KlasseB ist im Header File KlasseB.hpp definiert und die Methoden von ihr im Source File KlasseB.cpp.Auszug aus KlasseA.hpp
// In KlasseA die KlasseB als Member halten: #include "KlasseB.hpp" class KlasseA { private: KlasseB test; };Und: Include Guards in den Header Files nicht vergessen.
Edit:
Java Packages sind in C++ Namespaces (in meinem Bsp. gibts nur den globalen). Ein Unterschied ist, dass in Java die Packages in der File Struktur abgebildet werden müssen (AFAIK) und in C++ nicht (man kann, muss aber nicht).
-
hyperion1 schrieb:
Ich habe schon versucht mit include meine Klassen anzugeben, das hat aber auch nicht funktioniert.
Das ist keine brauchbare Beschreibung! Was hast du gemacht, wie lautet die Fehlermeldung?
-
manni66 schrieb:
zuckerlie schrieb:
Hast du dich mal mit der "Objektorientierten Programmierung" beschäftigt? Wenn nicht, lies dich da erstmal was durch. Da wird sowas behandelt.
Wenn du das sagst ...
Also die Tutorials, die ich über OOP gelesen habe, haben unteranderem Klassen behandelt und auch gezeigt, wie ich auf andere Klassen zugreifen kann, etc..
-
manni66 schrieb:
zuckerlie schrieb:
Hast du dich mal mit der "Objektorientierten Programmierung" beschäftigt? Wenn nicht, lies dich da erstmal was durch. Da wird sowas behandelt.
Wenn du das sagst ...

-
@Scheiss Kommentar,
kannst du diesbezüglich mal was näher erläutern, als einfach nur nen bösen Smiley zu machen...?
-
Wahrscheinlich wurde dein völlig überflüssiger Kommentar überflüssiger Weise kommentiert, so wie ich das jetzt überflüssiger Weise kommentiere.
Der Fragesteller hat seine Frage zwar ziemlich schlecht gestellt, aber die Info 'Javawelt' und 'include Versuche' reichen eigentlich aus, um zu wissen was er will, weil fast jeder Javamensch mit der Art wie C++ das managed nicht klar kommt.
Und wenn du ihm nur ein Google-Stichwort hinschmeißen willst, dann doch wohl kaum "Objektorientierten Programmierung", sondern eher sowas wie "Forward declaration" und "include guard".
-
Ich habe zu Anfang das gleiche Problem gehabt, habe mich dann nochmal mit der OOP auseinandergesetzt und siehe da, ich habe das verstanden und noch einiges mehr..