Zum Inhalt springen

static bzw. include-problem


Empfohlene Beiträge

Geschrieben

also, ich hab da ein kleines problem, das mich mittlerweile ganz schön nervt...

um eines vorweg zu sagen - ich programmiere erst seit einer woche in c++ , hab da also nicht so viel ahnung von

ich habe eine klasse CStein und eine klasse CIgel (namen willkürlich).

CStein greift auf die static-attribute von CIgel zu, so weit so gut. deshalb muss ich ja auch die Igel.h in CStein includen - alles kein problem soweit, funktioniert alles prima

aber: ich möchte der CIgel eine membervariable vom typ CStein hinzufügen - und hier ist das problem...

CStein will ja die Igel.h includen und es entsteht ein konflikt, weil es CStein ja noch net gibt...

kann man das irgendwie umgehen?

Geschrieben

Hmmm ich und erklaeren ;)

Das is in deinem Fall quasi die Bekanntmachung einer Klasse vor ihrem include.

Zum Beispiel im Header deiner CIgel ein "class CStein".

Somit hast du dein CStein dann fuer CIgel schon bekanntgemacht, obwohl es da noch nicht includet ist.

....hmmm mist...ich kann so frueh am Morgen noch nix erklaeren....werd erstmal nen Kaffee trinken. Vielleicht halfs ja trotzdem.

Goos

Geschrieben
Original geschrieben von palvoelgyi

Das verhindert, dass eine Include Datei mehrfach eingebunden wird und dadurch Fehler kommen können.

Frank

Noe das is nich richtig so....verhindern eines mehrfachen Einbindens wird normalerweise in jedem Header durch ein entsprechendes #ifndef, #define ,#endif erreicht. Man brauchts in der Regel nur bei einer gegenseitigen Abhaengigkeit wuerd ich sagen. (aber nehmt mich nicht so ernst ich hatte noch keinen Kaffee)

Goos

Geschrieben

Aehmmm...noe hast nicht gesagt

Man verhindert die Mehrfachincludes doch nur mit Praeprozessor Anweisungen.

Wo soll da bitte der Zusammenhang zur Vorwaertsdeklaration sein?

...vielleicht versteh ich dich aber auch nicht richtig und steh n bissl aufm Schlauch.

:)

Goos

Geschrieben

Jo Herr Pirat...nun hab ich den Unterschied zwischen den Nachfragen

was bewirkt das denn? zur not schau ich 's halt nach und

vorwärtsdeklaration?!? du kannst mir nicht zufällig sagen, was das ist?

auch begriffen.

Sorry palvoelgyi...is nich mein Tag heute :)

Goos

Geschrieben

Hallo,

nun aber wieder zurück zum eigentlichen Thema. Generell halte ich es für keine gute Idee, zwei Klasse A und B zu implementieren, wobei A als Membervariable von B auftritt und B als Membervariable von A. Sowas führt zu Problemen; wenn es sich denn gar nicht vermeiden läßt, kannst Du mit Forward-Deklarationen arbeiten, allerdings gibt es einige Einschränkungen (Du kannst beispielsweise keine Variable innerhalb der Klasse deklarieren):


#ifndef __CIGEL_INCLUDE__

#define __CIGEL_INCLUDE__


class CStein;


class CIgel {

  static CStein tmp; 

};


#endif


NIc

Geschrieben

ok, danke für die hilfe, aber ich hab mir das leben einfach gemacht, und einfach eine neue klasse geschaffen, die alle eingaben aufnimmt und sie speichert

c++ lernt man halt nicht in einer woche, mir raucht ja jetzt schon der kopf :D

danke nochmal!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...