C++: Librería de tratamiento de cadenas

Creación de operadores en BWString

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
En la clase BWString hemos implementado los operadores más importantes, como la comparación y concatenación de cadenas, asignación de copia e intercambio e incluso el operador de suma para concatenar cadenas de cadenas.
03:39

Transcripción

La clase 'BWString' implementa operadores para diversas funciones incluyendo la comparación y concatenación de cadenas de caracteres. Aquí tengo una copia de la clase 'BWString' extraída de los archivos de ejercicios. Lo primero que quiero que veas es el operador de asignación de copia e intercambio. Normalmente en una clase que admite la semántica de movimiento verás dos operadores de asignación, uno para copiar y otro para mover. La técnica de copia e intercambio es un operador de asignación de copia más eficaz que también admite la semántica de movimiento e implementa ambas de una forma muy eficaz. El operador '+=' realiza una concatenación. Primero comprueba que el parámetro tiene un string. Después hace comprobaciones de los límites para ver la longitud, reserva un espacio en memoria, copia los datos, utiliza 'memcpy' para cargar el espacio en memoria, usa 'copy_str' para copiar ese buffer en ese objeto y finalmente borra el espacio reservado. Hay una versión diferente para utilizar un 'BWString' como operador derecho y también está el operador de subíndice. El operador de subíndice realiza primero una comprobación para confirmar que no estamos fuera de rango. Si lo estamos devuelve un cero. El operador de subíndice devolverá un solo carácter que es el que se encuentra en la posición del índice en la cadena. Para ello primero comprueba que el índice no está fuera de rango. Si no lo está devuelve el carácter correspondiente de la cadena. Habrás visto que recibe un entero como argumento lo que técnicamente es incorrecto puesto que debería ser un 'size_t'. Se cambió para resolver un problema con el compilador de C++ de Microsoft. El compilador detectaba un conflicto con el operador de conversión de cadenas de caracteres de C. Volveremos sobre ello más tarde en este vídeo. Veía un subíndice y devolvía un mensaje de error indicando que el operador era antiguo. Se cambió porque un entero es un valor con signo mientras que 'size_t' es un valor sin signo. Esto ayuda al compilador de Microsoft a resolver el conflicto. De todas formas, un entero va a tener espacio suficiente para nuestros subíndices. Los operadores de comparación son realmente sencillos. Utilizan las funciones de la librería estándar de C para la comparación. Como te decía, es así de fácil. Utiliza 'string compare' con la longitud máxima para el argumento numérico, 'double equal' para decir que es igual, 'not equal to zero' para decir que es distinto, etc. Así es cómo se diseñaron realmente estas funciones para operar. Todas hacen su trabajo perfectamente Este es nuestro operador de conversión para devolver una cadena de caracteres en C que también es muy, muy sencillo. Para terminar, ya estamos llegando al final, tenemos una función sin miembros para el operador de suma. Nos permite concatenar una cadena de cadenas se implementa como una función, una función sin miembros, para que funcione con un string de C en cualquier lado del operador. Nos permite concatenar cadenas de cadenas combinadas con objetos 'BWString' y strings de C. En definitiva las implementaciones de operadores en 'BWString' son muy sencillas. Todos los operadores estándar están presentes y sus implementaciones son fáciles y sencillas.

C++: Librería de tratamiento de cadenas

Adapta tus proyectos en C++ para ofrecer la mejor gestión de recursos usando librerías personalizadas de tratamiento de cadenas, BWString, constructores, operadores, y muchos más.

37 min (9 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:15/12/2016

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.