Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 01.11.2005, 20:20 Titel: |
|
|
Hast du mal das Weglassen des 'CESceneNode.h'-Headers ausprobiert? (s. 2 Posts weiter oben von mir) |
|
Nach oben |
|
 |
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 01.11.2005, 22:26 Titel: |
|
|
Der Fehler hängt wohl mit der Kompilierreihenfolge zusammen: Wenn ich Scenenode.h in main.cpp includiere, dann funktioniert es. Wenn ich dagegen Scenemanager.h in main includiere bekomme ich den gleichen Fehler.
Das lässt sich aber auch beheben, indem man die #include "CESceneNode.h" in CESceneManager.h ans Ende der Datei verschiebt, also genau vor das #endif.
Bei mir klappt das jedenfalls. _________________ Kochen ist ein NP-schweres Optimierungsproblem. |
|
Nach oben |
|
 |
Slider|SD Mini JLI'ler
Alter: 44 Anmeldedatum: 20.10.2005 Beiträge: 18 Wohnort: Gilching Medaillen: Keine
|
Verfasst am: 02.11.2005, 00:11 Titel: |
|
|
Das ist auch logisch, denn durch die Vererbung
class CESceneNode : public CESceneManager
muss die CESceneManager Klasse vor CESceneNode deklariert sein. Da hilft keine Forward Deklaration (genau aus dem Grund, wie es im Thread schon genannt wurde).
Die CESceneManager Klasse hingegen benötigt nur Zeiger auf CESceneNode Instanzen. Hier reichen Forward Deklarationen, denn der Compiler muss zur Compile-Zeit der CESceneManager Klasse nicht wissen, wie CESceneNode aussieht. Ein Pointer auf eine Klasse ist immer gleich lang, egal wie die Klasse aussieht.
Dementsprechend sollte man sich merken:
- Bei der Vererbung einer Klasse MUSS die Klasse vorher deklariert worden sein
- Für Zeiger auf Klassen reicht eine Forward Deklaration aus
- Bei richtigen Instanz der Klasse A als Attribut einer Klasse B muss die Klasse A auch deklariert sein
_________________ Stefan Schwarzbach
Lead Programmer & Geschäftsführer
Grotesque - Die geniale Mischung aus Gothic , Final Fantasy und Monkey Island
Silent Dreams - We Create Dreams |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 02.11.2005, 08:19 Titel: |
|
|
Jo, das funktioniert. Ist ja wirklich nicht einfach.
Vielen Dank für eure Hilfe!!! _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
|