JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Konstruktoren von Basis und abgeleiteten Klassen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
wendy
Mini JLI'ler



Anmeldedatum: 03.10.2002
Beiträge: 8
Wohnort: Sumpf
Medaillen: Keine

BeitragVerfasst am: 15.01.2003, 18:26    Titel: Konstruktoren von Basis und abgeleiteten Klassen Antworten mit Zitat

Hallo,

ich habe folgendes Problem, in einem Programm will ich eine Klasse "File" erzeugen, davon abgeleitet eine Klasse zum einlesen ("InputFile") und eine zum schreiben ("OutputFile"). Von "InputFile" und "OutputFile" sind jeweils wieder eine Klasse mit Zusatzfunktionen abgeleitet ("InputFileExt" und "OutputFileExt").

also zB:
"File" -> "InputFile" -> "InputFileExt"



Im Konstruktor von "File" nutze ich den Befehl:

File::File(char *FileName, char Modus)
{
inout = fopen (FileName, "Modus");
(...)
}

wobei "inout" der FILE-Pointer sein soll, "FileName" sei zB: "blabla.dat" und "Modus" zB "w", diesen soll aber die abgeleitete Klasse festlegen also "InputFile" (bzw deren abgeleitete Klasse zB "InputFileExt"). So dass der Aufruf von File eben :
File testklasse (blablaname, w);

...der von InputFile :
InputFile testklasse (blablaname);

...und der von InputFileExt :
InputFileExt testklasse (blablaname);

sein soll, "inout" wäre hier zB als:
protected: FILE *inout;
in "File" (=Basis) definiert .


Fragen:
Shocked 1.Is das möglich?

Shocked 2.Is das möglich mit quasi unterschiedlichen Konstruktoren (Basis und abgeleitete Kl.) in den Basisklassenkonstruktor Parameter zu übergeben bei Erzeugung eines Objekts einer abgeleiteten Klasse (s.o.)?

Shocked 3.Wie implementiere ich dann die Konstruktoren in den Klassen?

Shocked 4.Wie die Destruktoren (wegen fclose() )?

Shocked 5.Gibts da ne Möglichkeit mit virtual zu arbeiten?

Danke schon mal...
_________________
Mit Vanessa versteht sich Wendy dagegen weniger gut. Vanessa träumt von einer Karriere als Fotomodell. Einkaufen gehen und Jungen sind ihr wichtiger als ihr Pferd Tarik, ein Araber Schimmelwallach.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Ciceri
Super JLI'ler


Alter: 37
Anmeldedatum: 26.08.2002
Beiträge: 418
Wohnort: Wischhafen/in der nähe Hamburgs
Medaillen: Keine

BeitragVerfasst am: 15.01.2003, 19:27    Titel: Antworten mit Zitat

JLI kaufen-lesen
also, ich glaube du machs das ein bisschen umständlich, hast du jli? also christains buch? nach den ersten zeilen habe ich nicht mehr weiter gelesen, also weiß ich net, ob das möglich ist Shocked nicht böse sein Wink
_________________
www.z-software.de
Spieleentwicklung-Pur
Besuchen Sie uns.
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: 15.01.2003, 19:38    Titel: Antworten mit Zitat

Lern erstmal C++

http://www.informit.de/books/c++21/data/inhalt.htm
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ciceri
Super JLI'ler


Alter: 37
Anmeldedatum: 26.08.2002
Beiträge: 418
Wohnort: Wischhafen/in der nähe Hamburgs
Medaillen: Keine

BeitragVerfasst am: 15.01.2003, 20:13    Titel: Antworten mit Zitat

hehe, dekonstruktor ist doch einfach Razz
_________________
www.z-software.de
Spieleentwicklung-Pur
Besuchen Sie uns.
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: 15.01.2003, 20:44    Titel: Antworten mit Zitat

Ciceri hat Folgendes geschrieben:
hehe, dekonstruktor ist doch einfach Razz


Solche Kommentare kannst du dir sparen. Wenn du schon sowas postest kannst du auch wenigstens gleich die Lösung mitposten wenn es so einfach ist.

@Wendy:
Der Dekonstruktor ist ein Klassen-Member, der den Namen der Klasse mit einer vorangestellten Tilde(~) hat:

Code:

class CBlubb
{
  CBlubb() { } // Konstruktor
  ~CBlubb()   // Dekonstruktor
  {
     fclose(..);
  }
 ...

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



Anmeldedatum: 03.10.2002
Beiträge: 8
Wohnort: Sumpf
Medaillen: Keine

BeitragVerfasst am: 16.01.2003, 04:32    Titel: OK, Dank! Antworten mit Zitat

hi, naja also da ich nich von Geburt aus C++ gelernt hab bin ich da quasi ja jemand der das als Frendsprache erst lernen muss, danke für die freundlichen Hinweise, das ich C++ erst lernen muss - bin grad dabei, aber man wird ja wohl noch Fragen haben dürfen oder war die Frage sooo dumm??? Wink

Mittlerweile hab ich das rausbekommen,
wenn
class InputFile:public File
{...}

ist und der Konstruktor von File zB
File::File(char *Filename, char mode)
{...}

ist, der von InputFile aber zB
InputFile::InputFile(char *Filename)
{...}

dann kann ich beim Konstruktor von InputFile schreiben:
InputFile::InputFile(char *Filename):File(FileName, "r")
{...}

womit implizit auch der Konstruktor der Basisklasse gesetzt wird, Danke ich weiss mittlerweile auch sogar schon was ein Destruktor ist... Aber das hatte ich ja doch gar nicht gefragt, oder? Ich geb aber zu dass die Frage trotzdem dämlich war Laughing - ok, es gibt bestimmt schwierigeres in C++.

Umstandlich ist dass denke ich nicht wenn man mit nem Filepointer Textfiles einlesen will, und eine Basisklasse zum erstellen des Pointers schreibt und davon eine Klasse zum Speichern und eine zum Laden schreibt (mit anderen Funktionen die da noch jeweils dazukommen), sondern eher so die normale Anwendung von Vererbung oder???
danke trotzdem...
_________________
Mit Vanessa versteht sich Wendy dagegen weniger gut. Vanessa träumt von einer Karriere als Fotomodell. Einkaufen gehen und Jungen sind ihr wichtiger als ihr Pferd Tarik, ein Araber Schimmelwallach.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung 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