Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
NiGGo007 Mini JLI'ler
Anmeldedatum: 10.01.2005 Beiträge: 2
Medaillen: Keine
|
Verfasst am: 10.01.2005, 16:43 Titel: Probleme mit Vererbungen |
|
|
ich habe ein kleines gravity-game geschrieben. dazu habe ich die klasse "CSprite" genommen und zwei klassen "CShot" & "CShip" abgeleitet..
mittels
#include "Ship.h"
#include "Shot.h"
hab ich die beiden klassen im main-programm importiert..
dies funktioniert jedoch leider nicht; ich erhalte folgende fehlermeldung:
Gravity error C2011: 'CSprite' : 'class' type redefinition
nun, da beide klassen (Ship & Shot) von Sprite erben, wird Sprite 2x mal ans programm angefügt... was kann ich dagegen tun?
kann mir jemand weiterhelfen??
herzlichen dank & viele grüsse, nicolas |
|
Nach oben |
|
|
Hasenfuß Senior JLI'ler
Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 10.01.2005, 16:52 Titel: |
|
|
Hi,
am besten schreibst du am Anfang von jedem Header
oder
CPP: | #ifndef _HEADERNAME_
#define _HEADERNAME_
/*
class - Definitionen etc...
*/
#endif
|
HTH
P.S.: Das gehört nicht wirklich unter DirectX |
|
Nach oben |
|
|
NiGGo007 Mini JLI'ler
Anmeldedatum: 10.01.2005 Beiträge: 2
Medaillen: Keine
|
Verfasst am: 10.01.2005, 17:10 Titel: |
|
|
hi!
danke dir für die schnelle antwort..!
habs mit Code: | #ifndef _HEADERNAME_ |
probiert & hat auf anhieb funktioniert.. juhui!
hast recht; gehört wirklich nicht in das directx-subforum.. bin noch völliger rookie! entschuldigt, liebe götter!!
übrigens, wie sähe der genaue syntax mit der prama-once-methode aus?
Code: |
#pragma once
#include "Headerfile"
|
?
nochmals vielen dank!
nicolas |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 10.01.2005, 17:17 Titel: |
|
|
#pragma once kommt einfach an den Anfang der Header.
Allerdings würde ich dir die Variante mit dem define empfehlen, weil pragma once glaub ich nicht standard konform ist... |
|
Nach oben |
|
|
Hasenfuß Senior JLI'ler
Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 10.01.2005, 17:42 Titel: |
|
|
Mit _HEADERNAME_ meine ich aber auch den Headernamen also zB. im Header CSprite.h würde das dann so aussehen:
CPP: | #ifndef _CSPRITE_
#define _CSPRITE_
/* blablabla */
#endif
|
Es muss auch nich der Headername sein... sollte halt nur für jeden Header ein anderer Name sein, sonst ist das ganze beim nächsten Header schon definiert und die Klasse wird gar nicht mehr deklariert |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.01.2005, 17:57 Titel: |
|
|
GreveN hat Folgendes geschrieben: | Allerdings würde ich dir die Variante mit dem define empfehlen, weil pragma once glaub ich nicht standard konform ist... |
Der Jung hat aufgepasst _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 10.01.2005, 19:36 Titel: |
|
|
Das vielleicht nicht, aber fast jeder Compiler weiss, was damit zu machen ist. Ausserdem muss man sich keinen Uniq Identifier ausdenken - #pragma once hat auch seine Vorteile...
Und wenn man eh in seiner Welt bleibt, ist das kein Problem - Ich verwende es jedenfalls. _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
FH Super JLI'ler
Alter: 36 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 10.01.2005, 19:54 Titel: |
|
|
Klar kann man es verwenden, aber sich einen Uniq auszudenken ist auch nicht so schwer. Im Notfall nummeriert man es durch (#define one, ...), ich schreib immer "_IncClassOrFileName_". Das ist eigentlich ganz simpel.
Wer immer das Ding verschoben hat: Das ins Fragen, etc. zu packen halte ich für etwas fragwürdig. Ich hätte es in die Entwicklung gesteckt. Das ist jedoch meine Meinung, und es steht mir nicht zu, darüber zu entscheiden. Nicht böse nehmen. Denke halt so...
Gruß
FH _________________ goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free |
|
Nach oben |
|
|
|