Programación para corregir errores
Luego, la cadena 1. input_data(; str 1); solo hay una línea.
CIN gt; gtp 1->p; Es ilegal escribir datos en NULL.
La solución más sencilla es asignar suficiente espacio de almacenamiento para el puntero P al crear el objeto. Además, para evitar pérdidas de memoria, el espacio señalado por P debe liberarse cuando se destruye el objeto.
Por lo tanto, las primeras líneas de la definición de clase se cambian a
{
Public:
String(){p= ¿nuevo? ¿Ciel? [100];}//El constructor permite que P guarde 100 caracteres.
~Cadena()? {¿borrar? []?p;}// Los otros códigos del destructor que agregué permanecen sin cambios, lo que debería ser suficiente para su problema, pero hay otros errores, como cuando dos cadenas de entrada son iguales, la visualización no es igual. Continúe depurando estos problemas. Solo solucionaré el problema por el cual este programa no se ejecuta cuando haya terminado. Si es necesario, sigue preguntando.