.| Autor | Beitrag |
|---|---|
|
000 07.10.2002, 14:53 Gnomo |
Hi! PS: Sorry, dass ich euch mit sowas nerven muss. ;) -- |
|
Profil || Suche |
|
001 07.10.2002, 15:31 Kriz |
Scheint so, als ob irgendwas in CApplication fehlt (Abschließendes Semikolon am Blockende der Klasse oso)... Aber so genau weiß ich das auch nicht, weil ich VC++ benutze. --K:R-I)Z++ |
|
Profil || Suche |
|
002 07.10.2002, 15:36 Gnomo |
Nein, sowas kann es net sein, das habe ich überprüft. -- |
|
Profil || Suche |
|
003 07.10.2002, 15:38 Kriz |
Dann poste mal die Definition von CApplication. --K:R-I)Z++ |
|
Profil || Suche |
|
004 07.10.2002, 16:18 Gnomo |
Das ist die Definition von CApplication: |
|
Profil || Suche |
|
005 08.10.2002, 15:01 Gnomo |
Hat niemand ne Ahnung was ich falsch gemacht habe? -- |
|
Profil || Suche |
|
006 08.10.2002, 20:04 Sccar |
class CRenderSystem : public class CApplication is nur so ne vermutung, aber versuchs mal sccar --...das is zwar der uebelst gehackteste kleine bastard, den ich je gesehen habe, aber dafuer sauschnell. {Tron} |
|
Profil || Suche |
|
007 09.10.2002, 08:49 Kriz |
Nee, daß ist es nicht, Sccar. Ein doofer Anfängerfehler ist es: Du deklarierst in CApplication eine Instanz von CRenderSystem, obwohl CRenderSystem erst später definiert wird in Abhängigkeit von CApplication. Das geht nicht. Du kannst nicht CRenderSystem in CApplication deklarieren, wenn CRenderSystem nicht schon VOR CApplication bekannt ist. Da aber CRenderSystem von CApplication abgeleitet ist, MUSS logischerweise CRenderSystem NACH CApplication definiert werden. Ein in sich ausschließendes Paradoxum ist das Ergebnis... Auf deutsch: Du hast Bullshit gecodet =) Eine Lösung kann ich dir nicht sagen, weil ich nicht weiß, wieso du CRenderSystem als Elementvariable in CApplication haben willst und wieso dann CRenderSystem gleichzeitig von CApplication abgeleitet sein soll... Wenn du nämlich die CRenderSystem-Instanz in CApplication auskommentierst, müsste es problemlos an dieser Codestelle kompilieren. --K:R-I)Z++ |
|
Profil || Suche |
|
008 09.10.2002, 09:02 Tron |
ich denke mal, kriz, du beziehst dich auf diese zeile. aber die sache stinkt, wenn eine klasse ihre eigene kindklasse kennen muss, dann ist das ein gravierender designfehler. <heiliger krieg> und wenn ich grade dabei bin... *G*
das jetzt _bitte_ nicht ganz so ernst nehmen, das ist _meine_ meinung und _meine_ eerfahrung, dass es besser lesbar ist. --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett Dieser Beitrag wurde am 09.10.2002 um 09:03 von Tron bearbeitet. |
|
Profil || Suche |
|
009 09.10.2002, 11:54 Kriz |
Nein, ich habe den Zeiger auf CRenderSystem schon gesehen. Wenn CRenderSystem nicht von CApplication abgeleitet wäre, hätte ich die Prototypisierung auch vorgeschlagen =)
Ich hab des Problemsche scho erkannt ;) @DP: Aktivier endlich mal [cpp], Kerl! --K:R-I)Z++ Dieser Beitrag wurde am 09.10.2002 um 11:55 von Kriz bearbeitet. |
|
Profil || Suche |
|
010 09.10.2002, 15:37 Tron |
die vorwaertsdeklaration von CApplication ist unnoetig. --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
011 09.10.2002, 16:29 Gnomo |
Hmm.. Wäre schön wenn es daran liegen würde aber ich habe schon eine vorwärtsdeklaration von CRenderSystem. Daran kanns net liegen. Wenn ihr wollt kann ich die ganze header datei posten. -- |
|
Profil || Suche |
|
012 10.10.2002, 18:07 Gnomo |
Ich habe schon alles versucht, aber es klappt immer noch nicht. Was kann ich noch tun? -- |
|
Profil || Suche |
|
013 10.10.2002, 19:58 Kriz |
Mann! Gnomo! Du kannst nicht gleichzeitig CRenderSystem von CApplication ableiten und gleichzeitig in CApplication einen Zeiger auf CRenderSystem setzen!!! --K:R-I)Z++ |
|
Profil || Suche |
|
014 10.10.2002, 20:03 Gnomo |
Ja, ok aber wie kann ich das Problem dann lösen. Ich will ja ´ne vernünftige Klassenherachie aufbauen. Was kann ich stattdessen machen? -- |
|
Profil || Suche |
|
015 10.10.2002, 20:08 Kriz |
Zuerst einmal schließen sich CRenderSystem und CApplication gegenseitig aus: CRenderSystem ist KEINE Applikation (eine Applikation ist das Programm an sich). Daher sollte CRenderSystem auch nicht von CApplication abgeleitet werden, sondern als eigener Klassenzweig arbeiten. Wenn du dann VOR CApplication dann CRenderSystem definierst (oder prototypisierst), dann darfst du deinen Zeiger auf in CApplication setzen, denn das RenderSystem ist ja Bestandteil der Applikation: class CRenderSystem; class CApplication { ... }; So in etwa. --K:R-I)Z++ |
|
Profil || Suche |
|
016 10.10.2002, 20:27 Tron |
da hast recht, eine application ist kein rendersystem, zudem ist eine application auch kein fenster (wegen HWND ...) das mit der vorwaerts deklaration (oder prototyp wie du es nennst) habe ich bereits weiter oben vorgeschlagen, das allein schein es ja nicht gewesen zu sein, wir brauchen wohl noch etwas mehr umgebung um diesen programmschnipsel --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
017 11.10.2002, 13:09 Gnomo |
Nun gut. Ich habe das nun verstanden. Ich werde dann mal eine Umstrukturierung der Engine vornehme. Danke für eure Hilfe. -- |
|
Profil || Suche |
|
018 11.10.2002, 16:56 dp Administrator |
hi kriz, wenn die neue vers raus ist bau ichs evtl ein (frisst gut cpu), vorher hats leider kein sinn. achso, krieg: der * gehört natürlich zum namen und net zum typ :) --Dieser Beitrag wurde am 11.10.2002 um 16:57 von Darth Paul bearbeitet. |
|
Profil || Suche |
|
019 11.10.2002, 18:01 Kriz |
Nö, der gehört zum Typ. Heißt ja schließlich "Zeiger auf Typ" und net "Zeiger auf Variablenname" :D --K:R-I)Z++ |
|
Profil || Suche |

