1 /*
2 *
htwg_string.h
3 *
4 * Stark vereinfachte String-Klasse.
5 *
6 * Autor: H.Drachenfels
7 * Erstellt am: 30.5.2024
8 */
9 #ifndef HTWG_STRING_H
10 #define HTWG_STRING_H
11
12 #include <cstddef> // size_t
13
14 namespace htwg
15 {
16 class string final
17 {
18 private:
19 std::size_t n;
20 char *s;
21
22 public:
23 string();
24 string(const char*); // bewusst nicht explicit
25
26 // Rule-of-five-Memberfunktionen (Destruktor und Copy/Move)
27 ~string();
28 string(const string&);
29 string(string&&);
30 string& operator=(const string&);
31 string& operator=(string&&);
32
33 // String-Konkatenation
34 string& operator+=(const string&);
35
36 // Vergleich(e)
37 friend bool operator<(const string&, const string&);
38
39 // Datenabfragen
40 const char* c_str() const;
41 std::size_t length() const;
42 };
43 }
44
45 #endif
46