konkrete Inhaltsfragen
Moderator: Moderatoren
konkrete Inhaltsfragen
Mein Problem (noch zu Versuch 1):
Fahrzeug.cpp
int p_iID; // <-
void Fahrzeug::vInitialisierung() //AUFGABE 1.4
{
p_sName=" ";
p_dMaxGeschwindigkeit=0.0;
p_dGesamtStrecke=0.0;
p_dGesamteZeit=0.0;
p_dZeit=0.0;
p_iID++; // <-
}
...
void Fahrzeug::vAusgabe()
{
cout << ... << p_iID << ... // <-
}
Fahrzeug.h
class Fahrzeug
{
public:
...
virtual void vAusgabe(void); // <-
private:
int p_iID;
...
void vInitialisierung(void);
}
Warum erhalte ich folgende Ausgabe in der Tabelle für meine ID?:
ID Name : MaxKmh GesamtStrecke
++++++++++++++++++++++++++++++++++++++++++
-858993459
-858993459
-842150450
-842150450
Ich würde gerne
1
2
3
4
stehen haben.
Fahrzeug.cpp
int p_iID; // <-
void Fahrzeug::vInitialisierung() //AUFGABE 1.4
{
p_sName=" ";
p_dMaxGeschwindigkeit=0.0;
p_dGesamtStrecke=0.0;
p_dGesamteZeit=0.0;
p_dZeit=0.0;
p_iID++; // <-
}
...
void Fahrzeug::vAusgabe()
{
cout << ... << p_iID << ... // <-
}
Fahrzeug.h
class Fahrzeug
{
public:
...
virtual void vAusgabe(void); // <-
private:
int p_iID;
...
void vInitialisierung(void);
}
Warum erhalte ich folgende Ausgabe in der Tabelle für meine ID?:
ID Name : MaxKmh GesamtStrecke
++++++++++++++++++++++++++++++++++++++++++
-858993459
-858993459
-842150450
-842150450
Ich würde gerne
1
2
3
4
stehen haben.
-
- Beiträge: 501
- Registriert: Do 19. Jun 2008, 12:12
Re: konkrete Inhaltsfragen
laut aufgabenstellung solltest du p_iMaxID hochzählen.
dazu deklarierst du p_iMaxID als static Variable in deiner .h, und initiallisierst sie in deiner .cpp mit dem wert 0. dies muss allerdings außerhalb des konstrutors geschehen. jetzt kannst du in deiner initiallisierungsfunktion p_iMaxId++; schreiben und p_iID=p_iMaxID;
die aufgabenstellung macht auch mehr sinn, denn p_iID ist vom jeweiligen Objekt der klasse fahrzeug abhängig. wenn du also fahrzeug1.p_iID erhöhst dann nur für dieses objekt, damit stimmt die id-reihenfolge dann allerdings nichtmehr. daher brauchst du ne variable (keine membervariable) die hochzählt.
dazu deklarierst du p_iMaxID als static Variable in deiner .h, und initiallisierst sie in deiner .cpp mit dem wert 0. dies muss allerdings außerhalb des konstrutors geschehen. jetzt kannst du in deiner initiallisierungsfunktion p_iMaxId++; schreiben und p_iID=p_iMaxID;
die aufgabenstellung macht auch mehr sinn, denn p_iID ist vom jeweiligen Objekt der klasse fahrzeug abhängig. wenn du also fahrzeug1.p_iID erhöhst dann nur für dieses objekt, damit stimmt die id-reihenfolge dann allerdings nichtmehr. daher brauchst du ne variable (keine membervariable) die hochzählt.
Re: konkrete Inhaltsfragen
warum benutzt ihr eigentlich nicht die newsgroup? Seit mehr als 3 Jahren werden da alle möglichen Fragen beantwortet, so dass man schon für fast jede erdenkliche Frage dort eine antwort findet.
Ich finde jeder Student sollte in der Lage sein einen Newsreader mit seinem eMail programm einzurichten.
Sonst ist die suche im Google Archiv immer wieder einen Versuch wert.
Ich finde jeder Student sollte in der Lage sein einen Newsreader mit seinem eMail programm einzurichten.
Sonst ist die suche im Google Archiv immer wieder einen Versuch wert.
Мои пять копеек
Re: konkrete Inhaltsfragen
Ich wollte ja zuerst die newsgroup benutzen;
aber keinen Plan, wie das funktionieren soll:
>Ich finde jeder Student sollte in der Lage sein einen Newsreader mit seinem eMail programm einzurichten.
???
Aber danke für deine Antwort, jetzt klappts so halb.
aber keinen Plan, wie das funktionieren soll:
>Ich finde jeder Student sollte in der Lage sein einen Newsreader mit seinem eMail programm einzurichten.
???
Aber danke für deine Antwort, jetzt klappts so halb.
Re: konkrete Inhaltsfragen
Zum einen finde ich, dass jeder es selber rausfinden sollte, so lernt man mehr. Ich finde es ist nicht alzu schwer unter google zb. newsgroups lesen einzugeben
Zum anderen habe ich ja in meinem vorherigen post einen link zu den google groups hinterlassen, damit auch wirklich jeder die newsgroups durchsuchen und lesen kann.
Zum anderen habe ich ja in meinem vorherigen post einen link zu den google groups hinterlassen, damit auch wirklich jeder die newsgroups durchsuchen und lesen kann.
Мои пять копеек
Re: konkrete Inhaltsfragen
Hallo Alle zusammen,
ich habe beim Aufgabenblock_1 noch ein winziges Problem mit den IDs bei dynamisch erzeugten Fahrzeugen (ich könnte das zwar noch anders lösen, aber dann wäre es nicht mehr ganz so flexibel...):
Es wird erst erfragt, wieviele Fahrzeuge erstellt werden sollen, anschließend werden soviele Fahrzeuge angelegt, wie es der Nutzer wünscht. ID 1 und 2 werden den beiden statischen zugewiesen, aber wenn der Benutzer jetzt 3 Fahrzuege erstellt, dann erhalten diese die IDs 6,7 und 8. Es werden 3 GeisterIDs erstellt. Nurweiß ich nicht genau wo, damit ich den Fehler beheben kann...
Code-Dateien im Anhang
ich habe beim Aufgabenblock_1 noch ein winziges Problem mit den IDs bei dynamisch erzeugten Fahrzeugen (ich könnte das zwar noch anders lösen, aber dann wäre es nicht mehr ganz so flexibel...):
Es wird erst erfragt, wieviele Fahrzeuge erstellt werden sollen, anschließend werden soviele Fahrzeuge angelegt, wie es der Nutzer wünscht. ID 1 und 2 werden den beiden statischen zugewiesen, aber wenn der Benutzer jetzt 3 Fahrzuege erstellt, dann erhalten diese die IDs 6,7 und 8. Es werden 3 GeisterIDs erstellt. Nurweiß ich nicht genau wo, damit ich den Fehler beheben kann...
Code-Dateien im Anhang
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao [MD]
-
- Administrator
- Beiträge: 237
- Registriert: Mo 10. Mär 2008, 04:09
- Wohnort: Aachen
- Kontaktdaten:
Re: konkrete Inhaltsfragen
Moin.
Hier werden bereits iAnzDynFahrzeuge erzeugt, die alle eine ID bekommen.
Später überschreibst du die bereits erzeugten Fahrzeuge wieder mit neuen
Instanzen und damit auch neuen IDs.
Ich würde empfehlen ein Array von Zeigern auf Fahrzeuge anzulegen und
nicht nur ein Array von Fahrzeugen, da dort wie gesagt automatisch der
Standard ( )-Konstruktor aufgerufen wird.
Sprich:
Ich hoffe du kannst was damit anfangen.
PS: In Aufgabe 2 bekommst du auch eine elegante Lösung mit vector aus der STL an die Hand.
Ob man die in Aufgabe 1 benutzen darf...
Gruß Christian
Code: Alles auswählen
ptArray = new Fahrzeug [iAnzDynFahrzeuge];
Später überschreibst du die bereits erzeugten Fahrzeuge wieder mit neuen
Instanzen und damit auch neuen IDs.
Ich würde empfehlen ein Array von Zeigern auf Fahrzeuge anzulegen und
nicht nur ein Array von Fahrzeugen, da dort wie gesagt automatisch der
Standard ( )-Konstruktor aufgerufen wird.
Sprich:
Code: Alles auswählen
Fahrzeug **ptArray = new Fahrzeug*[iAnzDynFahrzeuge];
// ...
Fahrzeug *ptF = new Fahrzeug();
// ...
ptArray[i] = ptF;
// ...
// Alles wieder löschen: Sowohl die einzelnen Fahrzeuge als auch das dynamisch geholte Array...
PS: In Aufgabe 2 bekommst du auch eine elegante Lösung mit vector aus der STL an die Hand.
Ob man die in Aufgabe 1 benutzen darf...
Gruß Christian
Re: konkrete Inhaltsfragen
Vielen Dank!!
Hatte mir schon gedacht, dass ich in dem Bereich eine doppelte Zuweisung drin habe. Der Tipp mit dem doppelten Pointer war das, wo ich nicht dran gedacht habe und weshalb meine Lösungsansätze gescheitert sind...
Hatte mir schon gedacht, dass ich in dem Bereich eine doppelte Zuweisung drin habe. Der Tipp mit dem doppelten Pointer war das, wo ich nicht dran gedacht habe und weshalb meine Lösungsansätze gescheitert sind...
Ciao [MD]
Re: konkrete Inhaltsfragen
Ich hab auch noch ne ähnliche Frage,
Bei mir klappt das mit den IDs wunderbar und auch das erstellen mit dem new Operator funktioniert.
Ich schaff es aber nicht, ein Auto zu deklarieren ohne den new operator zu benutzen.
so sieht das bei mir aus:
wie kann ich jetzt Auto[2] ein Fahrzeug zuweisen ohne den newoperator zu benutzen?
danke
Bei mir klappt das mit den IDs wunderbar und auch das erstellen mit dem new Operator funktioniert.
Ich schaff es aber nicht, ein Auto zu deklarieren ohne den new operator zu benutzen.
so sieht das bei mir aus:
Code: Alles auswählen
Fahrzeug *Auto[NUM_AUTOS];
/../
Auto[0]=new Fahrzeug(iAuto1,50);
Auto[1]=new Fahrzeug(iAuto2,60);
/../
danke
Re: konkrete Inhaltsfragen
Versuch mal mit
Falls du weitere Fragen hast, versuch die doch in der Newsgroup rwth.elektrotechnik.ai2 zu stellen. In dieser Gruppe werden die Fragen auch von den Praktikumsbetreuern kompetent beantwortet. Auf die Gruppe kann z.B. aus dem service-portal zugegriffen werden. http://service.eecs.rwth-aachen.de/main/pi2
Code: Alles auswählen
Fahrzeug Auto1(iAuto1, 50);
Auto[0] = &Auto1;