#ifndef STRING_H #define STRING_H #include #include const int null = 0; /** @class String @brief Facilita el trabajo con cadenas de caracteres de C */ class String { private: /// La cadena de C terminada en nulo. Siempre tiene memoria alojada en segmento de heap char* str; /// La longitud actual de la cadena apuntada por @a str size_t len; public: /// Constructor por defecto y de conversion /// ToDo: recibir un parametro 'size_t len = (size_t)-1' por si el llamador conoce el length String(const char* str = ""); /// Constructor de copia String(const String& other); /// Operador de asignacion const String& operator=(const String& other); /// Destructor ~String(); // Amistad con los operadores sobrecargados para que puedan acceder a los miembros de datos friend std::ostream& operator<<(std::ostream& output, const String& str); }; /// Permite cout << str1 << str2 << ... std::ostream& operator<<(std::ostream& output, const String& str); #endif // STRING_H