Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

ich weiss nicht, kann ich morgen erst wieder ausprobieren...

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

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

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

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

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

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

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

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!

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.