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

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

11

23.09.2008, 10:45

kiba
Du kannst auch per Vorwärtsdeklaration die referenzierte Klasse bekanntgeben, damit erübrigt sich die ganze Sache mit den includes:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
//ClassA.h


#include "basis_include.h"

class DLL ClassA
{
public:
    int x;
    int y;
};


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
//ClassB.h


#include "basis_include.h"

class ClassA;  //<-- Vorwärtsdeklaration


class DLL ClassB
{
public:
    void funktion(ClassA &a);
};


Vorwärtsdeklaration funzt jedoch nur dann, wenn du lediglich Pointer bzw. Referenzen auf Objekte der entsprechenden Klasse verwendest (so wie in deinem Fall, Referenzen). In der cpp-Datei müsstest du dann natürlich ClassA.h einbinden, damit dort die volle Klassendefinition bekannt ist. Deswegen klappt die Vorwärtsdeklaration auch nur mit Pointern und Referenzen, weil ansonsten ja zumindest die Objektgröße und Konstruktoren bekannt sein müssten.
Kommen Sie nie mit einem Schwert zu einer Schießerei.

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

12

23.09.2008, 12:45

thx für all die antworten
wieder was neue gelernt :D

die methode von Steven77 hat gut funktioniert