JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=734ffe5cbf2f42e4077cba5f0ce98b57Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Probleme mit Vererbungen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
NiGGo007
Mini JLI'ler



Anmeldedatum: 10.01.2005
Beiträge: 2

Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 16:43    Titel: Probleme mit Vererbungen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 16:52    Titel: Antworten mit Zitat

Hi,

am besten schreibst du am Anfang von jedem Header

CPP:
#pragma once


oder

CPP:
#ifndef _HEADERNAME_
#define _HEADERNAME_

/*

class - Definitionen etc...

*/


#endif


HTH

P.S.: Das gehört nicht wirklich unter DirectX Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
NiGGo007
Mini JLI'ler



Anmeldedatum: 10.01.2005
Beiträge: 2

Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 17:10    Titel: Antworten mit Zitat

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!! Embarassed

übrigens, wie sähe der genaue syntax mit der prama-once-methode aus?
Code:

#pragma once
#include "Headerfile"

?

nochmals vielen dank!

nicolas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 17:17    Titel: Antworten mit Zitat

#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
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 17:42    Titel: Antworten mit Zitat

Mit _HEADERNAME_ meine ich aber auch den Headernamen Wink 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 Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 17:57    Titel: Antworten mit Zitat

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 Wink
_________________
'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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 19:36    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 36
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 10.01.2005, 19:54    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
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