Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

01.10.2011, 13:16

Problem mit Zeiger auf Klasse

Hi! Ich habe gerade ein noch nicht dagewesenes Problem.

Ich habe drei Klassen und eine Globale Datei:

A.h:

C-/C++-Quelltext

1
2
3
4
5
6
7
#include "B.h"
class CA{
public: CA();
void SonstwasA();
private:
CB *m_pB;
};


B.h:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include "C.h"
class CB
{
public: CB();
void SonstwasB();
private:
CC *m_pC;
};


C.h:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include "Global.h"
class CC
{
public: CC();
void SonstwasC();
private:
int m_irgendInteger;
};


Global.h:

C-/C++-Quelltext

1
extern CA *g_CA;


In der *.cpp habe ich das gleiche nur ohne "extern", also CA *g_CA.
Ich sehe irgendwie das Problem, ich weiß nicht wie ich es beschreiben und lösen soll, deshalb habe ich hier ein einfaches Beispiel geschildert.
Hat wer eine Idee? :(
Danke!

steffen1997

Treue Seele

Beiträge: 200

Beruf: Schüler

  • Private Nachricht senden

2

01.10.2011, 13:38

poste mal die .cpp datei vielleicht haste nicht alle h dateien richtig eingebunden mit #include'xxxxxx' oder versuch es mal mit .hpp.

3

01.10.2011, 13:42

Ob *.hpp und *.h ist Wurst wie Käse.
Und die Header scheinen eingebunden zu sein. Global.h ist überall einmal drin, jede Datei ist ausreichend vertreten.

MfG
Check

4

01.10.2011, 13:45

Nur zu sagen Fehler ist ja auch dumm, nicht? :D
Sorry, also hier:

error C2143: Syntaxfehler: Es fehlt ';' vor '*'
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
error C2143: Syntaxfehler: Es fehlt ';' vor '*'
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.

Alles weist auf die zwei Pointer, die ersten 3 auf den ersten Pointer, die letzten 3 auf den letzten. Der in der Global.h ist fehlerfrei, nach MVC++.

steffen1997

Treue Seele

Beiträge: 200

Beruf: Schüler

  • Private Nachricht senden

5

01.10.2011, 13:47

hinter private bei variablen musste vielleicht int angeben

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

01.10.2011, 13:56

Vorwärtsdeklaration statt include! Du hast ja sowieso nur Zeiger.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

8

01.10.2011, 14:29

Aber in der *.cpp der Klassen nutze ich die Zeiger.
Und dann kommen viele Fehlermeldungen die alle sozusagen sagen, dass *whatever 'ungültig' (richtiges Wort?) sei.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MisterX« (01.10.2011, 14:42)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

9

01.10.2011, 16:01

Lies mal meinen verlinkten Beitrag ganz genau durch!

Werbeanzeige