konkrete Inhaltsfragen

Moderator: Moderatoren

Sophia
Beiträge: 193
Registriert: Mo 2. Jun 2008, 17:24

konkrete Inhaltsfragen

Beitrag von Sophia » So 26. Okt 2008, 11:54

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.

Darkmaster
Beiträge: 501
Registriert: Do 19. Jun 2008, 12:12

Re: konkrete Inhaltsfragen

Beitrag von Darkmaster » So 26. Okt 2008, 13:16

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.

testuser
Beiträge: 180
Registriert: Mi 25. Jun 2008, 18:47

Re: konkrete Inhaltsfragen

Beitrag von testuser » So 26. Okt 2008, 14:25

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.
Мои пять копеек

Sophia
Beiträge: 193
Registriert: Mo 2. Jun 2008, 17:24

Re: konkrete Inhaltsfragen

Beitrag von Sophia » So 26. Okt 2008, 14:37

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.

testuser
Beiträge: 180
Registriert: Mi 25. Jun 2008, 18:47

Re: konkrete Inhaltsfragen

Beitrag von testuser » So 26. Okt 2008, 15:15

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.
Мои пять копеек

Benutzeravatar
[MD]
Beiträge: 389
Registriert: Mi 16. Apr 2008, 14:26

Re: konkrete Inhaltsfragen

Beitrag von [MD] » Do 30. Okt 2008, 00:44

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao [MD]

Christian Bredtmann
Administrator
Beiträge: 237
Registriert: Mo 10. Mär 2008, 04:09
Wohnort: Aachen
Kontaktdaten:

Re: konkrete Inhaltsfragen

Beitrag von Christian Bredtmann » Do 30. Okt 2008, 09:06

Moin.

Code: Alles auswählen

ptArray = new Fahrzeug [iAnzDynFahrzeuge]; 
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:

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...
 
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

Benutzeravatar
[MD]
Beiträge: 389
Registriert: Mi 16. Apr 2008, 14:26

Re: konkrete Inhaltsfragen

Beitrag von [MD] » Do 30. Okt 2008, 10:53

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...
Ciao [MD]

Jochen
Beiträge: 218
Registriert: Di 10. Jun 2008, 12:06

Re: konkrete Inhaltsfragen

Beitrag von Jochen » Do 30. Okt 2008, 17:12

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:

Code: Alles auswählen

Fahrzeug *Auto[NUM_AUTOS];
/../
Auto[0]=new Fahrzeug(iAuto1,50);
Auto[1]=new Fahrzeug(iAuto2,60);
/../
wie kann ich jetzt Auto[2] ein Fahrzeug zuweisen ohne den newoperator zu benutzen?

danke

testuser
Beiträge: 180
Registriert: Mi 25. Jun 2008, 18:47

Re: konkrete Inhaltsfragen

Beitrag von testuser » Do 30. Okt 2008, 18:31

Versuch mal mit

Code: Alles auswählen

Fahrzeug Auto1(iAuto1, 50);
Auto[0] = &Auto1;
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

Antworten

Zurück zu „Praktikum Informatik II“