class List { … // wie IntStack (dynamische Variante) public: … // wie IntStack (dynamische Variante) bool top(int * value); // liefert den obersten Wert des Stacks mittels Zeiger zurück. bool top(int & value); // liefert den obersten Wert des Stacks mittels Referenz zurück. bool member(int value); // sucht value in der Liste int length(); // liefert die Länge der Liste (= die Höhe des Stacks) void print(ostream& o = cout); // gibt die Liste auf den ostream o aus }Schreiben Sie ein Hauptprogramm, das Ihre Implementation der Klasse entsprechend testet.
String s; //s besteht aus einem 10 Zeichen großen Array, das den Leerstring enthält String t="abc" //t besteht aus einem 10 Zeichen großen Array, das die Zeichenkette "abc" enthält String u="12345678901"; //u besteht aus einem 20 Zeichen großen Array mit entsprechendem Inhalt.Außerdem ist der Zuweisungsoperator derart zu überladen, dass C++ Zeichenketten an bereits existente String Objekte zugewiesen werden können. Dabei ist unter Umständen neuer Speicherplatz zu allozieren
s="abc"; //kein neuer Speicherplatz erforderlich u="123"; //kein neuer Speicherplatz erforderlich t="12345678901"; //es muss ein neues Array alloziert werden (das alte wird natürlich freigegeben)
s=t;Warum ist der durch den Compiler automatisch generierte Zuweisungsoperator nicht ausreichend?
t=s+u; //t enthält jetzt die Zeichenkette "abc123"