Objektartray in anderem Objekt inizialisieren

R

rdg

???
Hi,
ich will in der Klasse
class Terminplaner{
Terminplaner();
}


in Konstuktor
Terminplaner::Terminplaner(){
/* <-- to do --> */
}


ein Array mit Objekten von der Klasse
class Termin{

}

(Termin ist aber keine Unterklasse von Terminplaner sondern beide sind selbständig.)

erstellen. Die Werte von den Terminen holle ich aus einer Datei.

Nur mein Problem dabei, ich weiß nicht wirklich wie ich das bewerkstelligen soll.

Kennt jemand von Euch die Lösung? :( :))
 
Du kannst entweder Termin-Objekte alloziieren und in eine Datei schreiben im Binärmodus (Achtung wenn du mit Pointer arbeitest) - dann kannst du diese auch direkt wieder in die Objekte laden oder du kannst einen Klartext-Format machen der ausgelesen wird und diese Werte an die Termin-Objekte übergeben.

"Kennt jemand von Euch die Lösung" - es gibt nie nur eine Lösung :)
 
Achtung wenn du mit Pointer arbeitest
:think: :D


Ich wollte anfangs noch nicht so viel mit hineinschreiben damit es übersichtliger bleibt und da es fehlerhaft war sowieso eher Müll, doch stimmt besser ist es mein Problem genauer zu formulieren.

#ifndef TERMINPLANER_H
#define TERMINPLANER_H

#include "Datum.h"
#include "Termin.h"

class Terminplaner{
protected:
char menue_auswahl;
new unsigned short termin_anzahl;
Termin meinTermin[termin_anzahl];
public:
Terminplaner();
~Terminplaner();

};

Terminplaner.h:11: Fehler: expected unqualified-id before »new«
Terminplaner.h:12: Fehler: »termin_anzahl« wurde in diesem Gültigkeitsbereich nicht definiert

und dann noch beim Konstruktor, aber step by step.
 
Zuletzt bearbeitet:
Ok, ich glaube das Problem ist, dass aus deiner Ursprungsfrage nicht ganz herauskam, ob du wissen willst wie du ein Objekt in einem anderen alloziierst oder wie du Objekte in ein File speicherrst bzw. daraus lädst.

Das Problem ist ziemlich logisch :). Wieso hast du dort new drin? Das ist ja kein Datentyp!

Code:
class Terminplaner{
protected:
char menue_auswahl;
unsigned short termin_anzahl;
Termin *meinTermin;
public:
Terminplaner();
~Terminplaner();
};

... und schon hast du deine Pointer. Denn im Konstruktor wirst du sowas haben:
Code:
Terminplaner::Terminplaner(void) {
termin_anzahl = 100;
meinTermin = new Termin[termin_anzahl];
}

P.S. das ist genau das, was ich dir im anderen Thread unter dynamischem Speicher beschrieben habe :)
 
Mensch war das ein Müll von mir, werd es gleich ändern!!!

Ok das war lange nicht so vorbereitet wie ich gedacht habe. Werde es erst einmal genauer ausarbeiten.
Aber keine angst, ich komm zurück :D ;)

und natürlich wiedermal's vielen dank !!!
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ok, ich weiss das ich mich heute wie der erste Mensch anstelle.

Doch wie wird in Array intialisiert
meineTermine = new Termin[termine_anzahl] ();

wenn vereinfacht Temin :
Termin T0("a0","b0",Datum(1,1,2000));
Termin T1("a1","b1",Datum(1,1,2001));


<-
Terminplaner.cpp: In constructor »Terminplaner::Terminplaner()«:
Terminplaner.cpp:16: Fehler: keine passende Funktion für Aufruf von »Termin::Termin()«
Termin.h:13: Anmerkung: Kandidaten sind: Termin::Termin(char*, char*, Datum)
Termin.h:7: Anmerkung: Termin::Termin(const Termin&)
 
Zuletzt bearbeitet:
Naja da hast du verschiedene Möglichkeiten. Ich benutze meistens die erste wenn ich mit selbstgeschriebenen Klassen arbeiten kann, die zweite habe ich noch nie verwendet und die Dritte ist eher für Spezialfälle.

Einfach:
Am einfachsten du lagerst das Übergeben der Daten statt über den Konstruktor auf eine andere Methode aus. Dann kannst du das ganze mit einer for-Schleife lösen.

Mittel:
Es geht auch über die Vector Klasse aus der STL (Standard Template Library) soweit ich weiss. Google it :).

Schwer:
Einfach verkettete Liste (hier als struct, geht auch als Objekt)..
struct liste {
Termin *meinTermin;
liste *next;
}
So kannst du jeden Termin ebenfalls einzeln Alloziieren und eine dynamische Anzahl an Terminen haben.
 
Jetzt wo du es schreibst ist es natürlich völlig logisch und klar, und "peinlich" von mir zu fragen,

ich Glaub das liegt an der Übung, Erfahrung und Wissen das du im Gegensatz zu mir hast, so das du da sehr schnell durchsiehst, wo ich noch blöde fragen muss.

Allso wieder einmal ein recht herzlichen Dankeschön an dich!!!
Du hast mir mal wieder den Sand aus den Augen genommen!
 
Zuletzt bearbeitet:
Naja ich bin auch nicht der Obercrackprogrammierer (leider). Aber gewisse Konzepte bleiben einem mit der Zeit :).
 

Ähnliche Themen

Mit bash Skript bestimmte Werte aus Tabelle lesen

CentOS 7: Falsche Metric bei regelbasiertem Routing nach Server-Reboot

[Perl] Perl OO Methodenaufruf in anderem Objekt

gedit *.lang Datei mit eigenen Einfärbungen?

Upgrade CentOS 5.6 auf 6.x

Zurück
Oben