home *** CD-ROM | disk | FTP | other *** search
- /* STRING.CPP - Beispiel aus Kapitel 5 der
- Einführung */
-
- #include <iostream.h>
- #include <string.h>
-
- class String
- {
- char *char_ptr; // Zeiger auf den String-Inhalt
- int length; // Länge des Strings
-
- public:
- // drei verschiedene Konstruktoren:
-
- // Konstruktor benutzt existierenden String
- String(char *text);
-
- // erzeugt einen leeren String
- String(int size = 80);
-
- // für Zuweisung von einem anderen Objekt
- // dieser Klasse
- String(String& Other_String);
-
-
- // Destruktor
- ~String() {delete char_ptr;};
-
- int Get_len (void);
- void Show (void);
- };
-
- String::String (char *text)
- {
- length = strlen(text); // Länge des Textes ermitteln
- char_ptr = new char[length + 1];
- strcpy(char_ptr, text);
- };
-
- String::String (int size)
- {
- length = size;
- char_ptr = new char[length+1];
- *char_ptr = '\0';
- };
-
- String::String (String& Other_String)
- {
- // Länge des anderen Strings
- length = Other_String.length;
-
- // Speicher reservieren
- char_ptr = new char [length + 1];
-
- // den Text kopieren
- strcpy (char_ptr, Other_String.char_ptr);
- };
-
- int String::Get_len(void)
- {
- return (length);
- };
-
- void String::Show(void)
- {
- cout << char_ptr << "\n";
- };
-
- main () // Funktionen testen
- {
- String AString ("Reserviert von einem "
- "konstanten String.");
- AString.Show();
-
- // benutzt voreingestellte Länge
- String BString;
-
-
- // zeigt die Länge
- cout << "\n" << BString.Get_len() << "\n" ;
- BString = "Dies ist BString";
-
- // benutzt den dritten Konstruktor
- String CString(BString);
-
- // zeigt dessen Inhalt
- CString.Show();
- }