| 123456789101112131415161718192021222324252627282930313233343536373839 | #ifndef STRING_H#define STRING_Hclass String final {public:    String();    String(const char* str);    bool operator==(const String& other) const;    bool operator!=(const String& other) const;    operator const char*() const;    char operator[](int index) const;    int getLength() const;    template<typename T>    String& append(const char* format, const T& t) {        int left = MAX_LENGTH - length;        int written = snprintf(data + length, left, format, t);        if(written < left) {            length += written;        } else {            length = MAX_LENGTH;        }        return *this;    }    String& append(char c);    String& append(const char* str);    String& append(int i);    String& append(float f);    String& append(bool b);private:    static constexpr int MAX_LENGTH = 256 - sizeof(int);    char data[MAX_LENGTH];    int length;};#endif
 |