Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- Automatentheorie (http://www.informatikerboard.de/board/board.php?boardid=13)
----- C++Aufgabe (http://www.informatikerboard.de/board/thread.php?threadid=2215)


Geschrieben von eulerscheZahl am 12.04.2015 um 18:55:

 

Ich habe mir jetzt mal die Aufgabenstellung angeschaut: im Konstruktor musst du noch Speicherplatz für die Einträge (m_entries) anlegen. Den musst du dann im Destruktor auch wieder freigeben.



Geschrieben von ccc am 12.04.2015 um 21:05:

 

Wie legt man Speicherplatz an ?



Geschrieben von eulerscheZahl am 13.04.2015 um 16:02:

 

code:
1:
long m_loggedEntries = new long[m_maxEntries];

Das musst du dann mit delete wieder löschen.



Geschrieben von ccc am 14.04.2015 um 13:53:

 

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

CConsumptionLog::~CConsumptionLog(){

delete m_maxEntries;


}



Geht das so?

War mir nicht sicher ob ich logged Entries oder max Entries löschen sollte ?



Geschrieben von eulerscheZahl am 14.04.2015 um 16:59:

 

Du musst den Speicher wieder freigeben, den du im Konstruktor dynamisch allokiert hast, also m_loggedEntries.
Und da es sich um ein Array handelt, solltest du delete[] verwenden.

PS: Karlito hat mich darauf hingewiesen, dass es this-> heißen muss, statt this., wenn man auf die Felder zugreifen will.



Geschrieben von ccc am 15.04.2015 um 01:05:

 

Zeichnen Sie das UML-Klassendiagramm der Klasse CConsumptionLog (mit Initialwerten, Defaultwerten und
Zusicherungen) auf der Grundlage der in Aufgabenteil b) ergänzten Klassendefinition. Verwenden Sie den hier
dafür vorgesehenen Platz


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

CConsumptionLog::~CConsumptionLog(){

delete[m_loggedEntries];


}



Wisst ihr wie man so ein UML Diagramm erstellt ?



Geschrieben von Karlito am 15.04.2015 um 13:55:

 

Zitat:
Original von ccc
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:

CConsumptionLog::~CConsumptionLog(){

delete[m_loggedEntries];


}


Ist falsch.

code:
1:
2:
3:
4:
5:
CConsumptionLog::~CConsumptionLog(){
  delete [] m_entries;
}


Zitat:
Original von ccc
Wisst ihr wie man so ein UML Diagramm erstellt ?


Ja. Schau dir einfach den Wikipedia-Artikel an und mache einen Vorschlag. Wir schauen dann drüber.

Gruß,

Karlito



Geschrieben von ccc am 15.04.2015 um 19:39:

 

Wieso schreibt ihr da nur m_entries ?



Geschrieben von Karlito am 15.04.2015 um 21:25:

 

Weil m_logEntries vom Typ long ist und die aktuelle Anzahl an Datensätzen vorhalten soll. m_Entries hingegen ist das Array mit den Datensätzen. Das ist es, was reserviert und auch freigegeben werden muss. Ich glaube da war ein Fehler bei euler. Du solltest das Programm auch mal probieren.

Gruß,

Karlito


Forensoftware: Burning Board, entwickelt von WoltLab GmbH