JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

public Klasse und Basisklasse undefiniert
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
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

BeitragVerfasst am: 01.11.2005, 20:20    Titel: Antworten mit Zitat

Hast du mal das Weglassen des 'CESceneNode.h'-Headers ausprobiert? (s. 2 Posts weiter oben von mir)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 01.11.2005, 22:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Slider|SD
Mini JLI'ler


Alter: 44
Anmeldedatum: 20.10.2005
Beiträge: 18
Wohnort: Gilching
Medaillen: Keine

BeitragVerfasst am: 02.11.2005, 00:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 02.11.2005, 08:19    Titel: Antworten mit Zitat

Jo, das funktioniert. Ist ja wirklich nicht einfach.

Vielen Dank für eure Hilfe!!!
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum