home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / tcpp / examples / string.cpp < prev    next >
C/C++ Source or Header  |  1990-06-09  |  2KB  |  88 lines

  1. /* STRING.CPP - Beispiel aus Kapitel 5 der
  2.    Einführung */
  3.  
  4. #include <iostream.h>
  5. #include <string.h>
  6.  
  7. class String
  8. {
  9.    char *char_ptr; // Zeiger auf den String-Inhalt
  10.    int length;     // Länge des Strings
  11.  
  12. public:
  13.    // drei verschiedene Konstruktoren:
  14.  
  15.    // Konstruktor benutzt existierenden String
  16.    String(char *text);
  17.  
  18.    // erzeugt einen leeren String
  19.    String(int size = 80);
  20.  
  21.    // für Zuweisung von einem anderen Objekt
  22.    //  dieser Klasse
  23.    String(String& Other_String);
  24.  
  25.  
  26.    // Destruktor
  27.    ~String() {delete char_ptr;};
  28.  
  29.    int Get_len (void);
  30.    void Show (void);
  31. };
  32.  
  33. String::String (char *text)
  34. {
  35.    length = strlen(text);  // Länge des Textes ermitteln
  36.    char_ptr = new char[length + 1];
  37.    strcpy(char_ptr, text);
  38. };
  39.  
  40. String::String (int size)
  41. {
  42.    length = size;
  43.    char_ptr = new char[length+1];
  44.    *char_ptr = '\0';
  45. };
  46.  
  47. String::String (String& Other_String)
  48. {
  49.    // Länge des anderen Strings
  50.    length = Other_String.length;
  51.  
  52.    // Speicher reservieren
  53.    char_ptr = new char [length + 1];
  54.  
  55.    // den Text kopieren
  56.    strcpy (char_ptr, Other_String.char_ptr); 
  57. };
  58.  
  59. int String::Get_len(void)
  60. {
  61.    return (length);
  62. };
  63.  
  64. void String::Show(void)
  65. {
  66.    cout << char_ptr << "\n";
  67. };
  68.  
  69. main ()    // Funktionen testen
  70. {
  71.    String AString ("Reserviert von einem "
  72.                    "konstanten String.");
  73.    AString.Show();
  74.  
  75.    // benutzt voreingestellte Länge
  76.    String BString;
  77.  
  78.  
  79.    // zeigt die Länge
  80.    cout << "\n" << BString.Get_len() << "\n" ; 
  81.    BString = "Dies ist BString";
  82.  
  83.    // benutzt den dritten Konstruktor
  84.    String CString(BString);
  85.  
  86.    // zeigt dessen Inhalt
  87.    CString.Show();             
  88. }