JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Klassenbenutzung
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
CorDharel
Junior JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 73
Wohnort: Winterthur, Zürich, CH
Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 15:28    Titel: Klassenbenutzung Antworten mit Zitat

hi all!

Ich bin jetzt bei Kapitel 9 des Buches, bei dem man eine Klasse erstellen soll. Doch muss ich für eine Klasse eine Headerdatei erstellen und die includen oder ist das ein .cpp File?
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hasenfuß
Senior JLI'ler


Alter: 36
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 16:12    Titel: Antworten mit Zitat

Hi!
Soweit ich weis kannst du beides machen. Allerdings find ich die Variante mit den Headerdateien viel übersichtlicher, also die Deklaration in ner header und die Definition in einer *.cpp.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Starwash
Senior JLI'ler


Alter: 39
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 16:44    Titel: Antworten mit Zitat

Hi, man kann Klassen komplett in .cpp oder .h definieren oder man kann eine klasse auf eine .h und auf eine .cpp aufteilen, wenn man sich jedoch intensivst mit Klassen und Klassenstruktur beschäftigt liest man früher oder später, dass die Variante eine Klasse auf eine .h und eine .cpp aufzuteilen veraltete und heut zu Tage eigentlich kaum noch genutzt wird (also jetzt mal in der Profiszene).

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


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

BeitragVerfasst am: 21.10.2002, 16:48    Titel: Antworten mit Zitat

Dem muß ich energisch wiedersprechen, gerade ein Header ist doch dafür da, damit die Klasse in anderen Programmteilen bekanntgemacht werden kann, indem man den Header includiert. Wenn alles nur in *.cpp-Dateien programmiert wird, müssen Anderungen an einer Klasse in x Dateien geändert werden - was nicht gerade der Übersichtlichkeit zugute kommt.
Gerade in größeren Projekten kann man fast gar nicht auf Header verzichten.

AFE-GmdG
_________________
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
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 16:56    Titel: Antworten mit Zitat

Ich stimme AFE zu... wo hast du das denn gelesen Apnik? Davon hab ich noch garnix gehört...
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 17:26    Titel: Antworten mit Zitat

Ja, ich kann auch nur afe und hazel zustimmen. Schliesslich wird es in der MFC AFAIK auch so gemacht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 17:35    Titel: Antworten mit Zitat

Das wird nicht nur in der MFC so gemacht. Das wird generell so gemacht und wenn nicht, ist es ein sehr schlechter Programmierstil.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 18:54    Titel: Antworten mit Zitat

Achja, dann gibt's da auch noch das Common Files Framework, da wird's auch so gemacht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
CorDharel
Junior JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 73
Wohnort: Winterthur, Zürich, CH
Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 20:03    Titel: Antworten mit Zitat

Also wie ich das verstanden habe meint ihr ich sollte es mit Headerdatein + includen machen?! Confused
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 20:26    Titel: Antworten mit Zitat

Am besten so:

Header
Code:

#ifndef CFOO_H
#define CFOO_H

class CFoo
{
public:
   Foo();
   ~Foo();

   void BangBoomBang(),

private:
   int m_Bar;
};

#endif


Cpp Datei:
Code:

#include "CFoo.h"

CFoo::CFoo() : m_Bar(0)
{
}

CFoo::~CFoo()
{
}

void CFoo::BangBoomBang()
{
   cout << "Schmierlaps, ein faustgroßer Einzeller \n";
}


_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Starwash
Senior JLI'ler


Alter: 39
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 20:48    Titel: Antworten mit Zitat

Hi, ich greife auch immer auf Header zu, die Frage war aber, was möglich ist. Ich habe auch nirgends geschrieben, dass es sinnvoll ist eine Klasse in eine .cpp zu packen, aber dass es möglich ist. Ich schrieb nur, dass die Variante .h und .cpp veraltet ist. Außerdem habe ich mal gelesen, dass die Klassen und Strukturen die in einer .cpp definiert werden auch in einer .h genutzt werden können, die includiert wird.
Also man hat in der main.cpp einen struct _BspInt{ int i; };
und kann auf diesen auch in der .h zugreifen. Ich würde nie auf die Idee kommen meine Klassen in .cpp zu packen. Ich habe meine Klassen immer komplett in einer .h .

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
CorDharel
Junior JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 73
Wohnort: Winterthur, Zürich, CH
Medaillen: Keine

BeitragVerfasst am: 22.10.2002, 07:21    Titel: Antworten mit Zitat

Hmm was ist denn eigentlich der Unterschied einer DLL und einer Klasse? Beides sind doch Sammlungen von Funktionen? Shocked
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


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

BeitragVerfasst am: 22.10.2002, 07:42    Titel: Antworten mit Zitat

Eine DLL kann eine Sammlung von Funktionen sein, nicht jedoch zwingend nur aus einer Klasse. Desweiteren können Dynamic Link Librarys alle möglichen und unmöglichen Resourcen beinhalten, vom einfachen Mauszeiger bis hin zur kompletten AVI-Animation...

AFE-GmdG
_________________
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
CorDharel
Junior JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 73
Wohnort: Winterthur, Zürich, CH
Medaillen: Keine

BeitragVerfasst am: 22.10.2002, 08:33    Titel: Antworten mit Zitat

Aha thx!

Hmm aber funktionieren tut es immer noch nicht Crying or Very sad

Ich habe etwa diese Klasse (sie soll einen String den ich übergebe ausgeben)

Code:

#include <stdio.h>

class Ausgabe
{
void gebeaus(char output)
{
printf("%s",output);
}
};


und ein Programm:

Code:
#include "ausgabe.h"

void main(void)
{
gebeaus("Ausgabe");
}


Wie mach ich das nun richtig?
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.10.2002, 08:55    Titel: Antworten mit Zitat

Code:

#include <stdio.h>

class Ausgabe
{
  void gebeaus(char output)
  {
    printf("%s",output);
  }
};


Das sollte doch wohl eher

Code:

void gebeaus(char* output)  // Soll ja ein String sein
{
    printf("%s",output);
}


Außerdem kannst du in dem Fall auch direkt

printf(output);

schreiben.

Christian
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 -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 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