#include #include class cadena{ public: cadena(); //Constructor por Defecto cadena(char *c);//Constructor desde Cadena c cadena (int n); //Constructor para una cadena de n caracteres cadena(const cadena &); //Constructor Copia ~cadena(); //Destructor void Asignar(char *dest); char *Leer(char *c); private: char *cad; //Puntero a Char: cadena de caracteres }; cadena::cadena() { cad = NULL; } cadena::cadena(char *c) { cad = new char[strlen(c)+1]; //Reserva memoria para la cadena strcpy(cad, c); //Almacena La cadena } cadena::cadena(int n) { cad= new char[n+1]; //Reserva memoria para n caracteres cad[0]=0; //Cadena Vacia } cadena::cadena(const cadena &Cad) { //Reservamos memoria para la nueva y la almacenamos cad=new char[strlen(Cad.cad)+1]; //Reserva memoria para la cadena strcpy(cad, Cad.cad); //Almacena la cadena } cadena::~cadena() { delete[] cad; //Libera la memoria reservada a cad } void cadena::Asignar(char *dest) { //Eliminamos la cadena actual: delete[] cad; //Reservamos la memoria para la nueva y la almacenamos cad=new char[strlen(dest)+1]; //Reserva memoria para la cadena strcpy(cad, dest); //Almacena la cadena } char *cadena::Leer(char *c) { strcpy(c, cad); return c; } int main(int argc, char *argv[]) { cadena Cadena1("Cadena de Prueba"); cadena Cadena2(Cadena1); //Cadena 2 es copia de Cadena 1 cadena *Cadena3; //Cadena 3 es un puntero char c[256]; Cadena1.Asignar("Otra cadena diferente"); //Modificamos cadena1 Cadena3 = new cadena("Cadena de prueva nø3 "); //Creamos Cadena3 //Ver resultados cout<<"Cadena 1: "<Leer(c)<