friend-Klasse plötzlich unbekannt
-
Hallo,
ich hab hier folgenden Code (vereinfacht):
// D3DDevice.h: class CD3DDevice { // Einige Deklarationen }; // Light.h: #include "D3DDevice.h" class CLight { friend CD3DDevice; // Das hier ist Zeile 9 };
Bekomme aber folgende Fehler:
Light.h(9) : error C2433: 'CD3DDevice' : 'friend' bei der Deklaration von Daten nicht zulaessig Light.h(9) : error C2501: 'CD3DDevice' : Fehlende Speicherklasse oder Typbezeichner Light.h(9) : error C2244: 'CD3DDevice' : Funktionsueberladung kann nicht aufgeloest werden
Was hab ich falsch gemacht? CD3DDevice ist doch ordnungsgemäß deklariert, oder?
CD3DDevice enthält übrigens einige inline-Funktionen, die - wie es sich gehört - direkt im Header definiert werden. (falls das was ausmacht).
mfg. Tubos
-
[cpp]
friend class CD3DDevice; // Das hier ist Zeile 9
[/cpp]
-
Danke, funktioniert!
Dafür habe ich an einer anderen Stelle ein Problem mit genau derselben Klasse neu dazu bekommen. Ich verwende in einer inline-Methode, die in einem Header deklariert + definiert ist, eine Instanz der Klasse. Die Instanz ist ganz woanders definiert, die inline-Methode ruft nur eine Methode davon auf. Dabei bekomme ich folgenden Fehler:
error C2027: Verwendung des undefinierten Typs "CD3DDevice"
Obwohl D3DDevice.h ordnungsgemäß inkludiert ist.
Ich habe mir provisorisch damit geholfen, dass ich die beiden betroffenen Funktionen nicht-inline gemacht habe, aber ich möchte schon dass es auch mit inline funktioniert