000
11.12.2003, 13:35 Uhr
~noob
Gast
|
Hi. Habe Klasse intStack, wie unten angegeben gelöst. Muß dieses Bsp jetzt aber erweitern, nur finde ich keinen richtigen Ansatz. Wäre nett, wenn mir jemand den Ansatz verraten könnte.
C++: |
const int stacksize = 8; class IntStack { int cont[stacksize]; int next; // index nä. freies Element public: IntStack(); bool push(int); // return true: Erfolg, false: Stack voll int top(); // vorher isEmpty() prüfen! void pop(); bool isEmpty(); };
und
isEmpty bool IntStack::isEmpty() { return next == 0; }
pop void IntStack::pop() { if (next > 0) --next; }
push bool IntStack::push(int value){ if(next < stacksize) { cont[next++] = value; } else return false; return true; }
top int IntStack::top() { if (next > 0) return cont[next-1]; else return -1; }
|
Muß jetzt Methoden erweitern:
C++: |
bool IntStack::top(int * value) const; bool IntStack::top(int & value) const;
|
die es dem Benutzer ersparen, vor jedem Aufruf der Methode top die Methode isEmpty() aufrufen zu müssen. Wenn (mindestens) ein Element am Stack liegt, sollen die Methoden den Wert des obersten Elements über den Parameter value zurückgeben; die Methode soll als Funktionswert true liefern. Ist der Stack aber leer, soll value unverändert bleiben und die Methode false zurückliefern. Verstecken Sie die ursprüngliche top Methode vor dem unbedarften User, so daß nur mehr die beiden neu definierten Methoden außerhalb der Klasse bekannt sind. Schreiben Sie ein Hauptprogramm, mit dem Sie beide Methoden testen können.
Bearbeitung von Pablo: |
WIESO BENUTZT DENN HIER KEINER DIE CPPs TAGs
|
Dieser Post wurde am 11.12.2003 um 14:29 Uhr von Pablo Yanez Trujillo editiert. |