Size: 1854
Comment:
|
Size: 997
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
== Fragen und Kommentare zur 6. Vorlesung / zum 6. Übungsblatt == | == Fragen und Kommentare zur 8. Vorlesung / zum 8. Übungsblatt == |
Line 3: | Line 3: |
@Mirko + Alle: Gute Frage, ich habe selber gerade die Musterlösung für die Aufgabe geschrieben und habe es wie folgt gehandhabt. Bei ''erase'' müssen ''start'' und ''length'' beide ''>= 0'' sein, ich habe dafür jeweils ein ''assert'' am Anfang der Methode. Ich finde negative Werte für diese Argumente machen nicht wirklich Sinn bzw. der Sinn wäre zu weit hergeholt. Sonst ist aber alles erlaubt, also sowohl dass der ''start'' erst am oder nach dem Ende des strings kommt (dann wird einfach nichts gelöscht) und dass ''start + length'' bis über den string hinausgeht (dann wird halt von ''start'' bis zum Ende des strings gelöscht). Diese Randfälle sollten natürlich alle in dem Test für diese Methode berücksichtigt werden. Bei insert habe ich sowohl einen ''assert(start >= 0)'' also auch einen ''assert(start <= _length)'' weil alles andere keinen Sinn macht. '''Hannah 2Jun10 21:42''' | @Simson + Alle: Nein, Sie brauchen sich nicht um das kümmern, was Sie "Typsicherheit" nennen. '''Hannah 18Jun10 01:02''' |
Line 5: | Line 5: |
Hi, wie sollen wir den Fall bei erase(..) behandeln wenn start negativ ist, (und auch der Fall wenn length negativ ist). Man könnte bei erase(-10,12) ja z.b. die ersten beiden Zeichen löschen. Und bei erase(5,-3), die Zeichen an den Stellen 5,4,3. Oder dürfen wir in diesen Fällen einen Fehler ausgeben / den String unverändert lassen. '''Mirko 2Jun10 21:21''' | Mit new oder malloc allozierter Speicher wird nicht automatisch mit 0en initialisiert. Es macht also keinen Sinn diesen Speicher auf irgeneinen Inhalt zu testen. Wenn du den Speicher 0en willst: man memset. '''Jens 17Jun10 23:13''' |
Line 7: | Line 7: |
@Alle: Habe gerade noch eine Destruktor + Test zu meinem Code aus ''vorlesung-6'' hinzugefügt, also wenn Sie den schon bei sich runtergeladen haben, machen Sie ein ''svn update''. '''Hannah 2Jun10 20:05''' | Irgendwie steh ich grad auf dem Schlauch. in meinem Konstruktor heißt es {{{ _elements = new T[MAX_ARRAY_SIZE];}}} und in meinem Test {{{ ASSERT_EQ(NULL, set._elements[0]);}}} und Hudson meldet immer {{{ [ RUN ] SetTest.constructor SetTest.cpp:12: Failure Value of: set._elements[0] Actual: 1 Expected: __null Which is: 0}}} Was ist da los? '''Simson 17Jun10 22:37''' |
Line 9: | Line 18: |
@Simson + Alle: Ja, da gab es gerade Probleme, aber laut Jens Hoffmann sollte jetzt wieder alles gehen. Die Dateien von der Vorlesung heute habe ich bereits hochgeladen. '''Hannah 2Jun10 19:54''' Die svn-Ordner der Vorlesungsdateien und Musterlösungen sind gesperrt? '''Simson 2Jun10 18:55 ''' |
Sollen wir auch für "Typsicherheit" sorgen, also soll bei sowas wie {{{ Set<int> set; set.insert('a'); }}} mit Fehlermeldung abgebrochen werden? '''Simson 17Jun10 22:32''' |
Fragen und Kommentare zur 8. Vorlesung / zum 8. Übungsblatt
@Simson + Alle: Nein, Sie brauchen sich nicht um das kümmern, was Sie "Typsicherheit" nennen. Hannah 18Jun10 01:02
Mit new oder malloc allozierter Speicher wird nicht automatisch mit 0en initialisiert. Es macht also keinen Sinn diesen Speicher auf irgeneinen Inhalt zu testen. Wenn du den Speicher 0en willst: man memset. Jens 17Jun10 23:13
Irgendwie steh ich grad auf dem Schlauch. in meinem Konstruktor heißt es
_elements = new T[MAX_ARRAY_SIZE];
und in meinem Test
ASSERT_EQ(NULL, set._elements[0]);
und Hudson meldet immer
[ RUN ] SetTest.constructor SetTest.cpp:12: Failure Value of: set._elements[0] Actual: 1 Expected: __null Which is: 0
Was ist da los? Simson 17Jun10 22:37
Sollen wir auch für "Typsicherheit" sorgen, also soll bei sowas wie
Set<int> set; set.insert('a');
mit Fehlermeldung abgebrochen werden? Simson 17Jun10 22:32