Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - FRANCO1a

#1
hola engel lex!! en la version del compilador dev 5.10 corre sin problemas, pero pasando el codigo al turbo c++
acondicionandolo sin el int main;return(0);system("PAUSE"); para que funcione me tira los siguientes warning:

linker fatal:unable to open file "C:\tcwin45.....noname00.exe

linker warning: no module definition file specified using defaults.

lo que me llamo la atencion es que la primera vez que copie el codigo y lo "acondicione" el compilador me tiro una advertencia de error pero lo compilo de todas formas y desde entonces no lo compilo mas.

este programa es mi parcial de paradigmas de programacion en el cual lo ize con el dev-5.10 y mi profesor tiene el dev-4.10 en el cual no le corre y me dijo que lo traiga solucionado. por eso intente probarlo en el turbo c y me encuentro con ese problema

lo que hace el ejercicio es crear un arreglo dinamico para que luego se le pueda enviar cadena de caracteres e ir jugando un poco con eso.


#2
Código (cpp) [Seleccionar]
#include<iostream>
#include<stdio.h>
#include<string.h>

using namespace std;

class Cadena{
 public:
Cadena (const char*);
Cadena (const Cadena&);
Cadena (short);
~Cadena (void);
Cadena& operator = (const char*);
Cadena& operator = (const Cadena&);
char& operator [] (const short);
int getLongitud () {
 return (longitud);
 }
friend Cadena operator + (const Cadena&, const Cadena&);
friend ostream& operator << (ostream&, Cadena&);
private:
 char *caracteres;
short longitud;
};

Cadena::Cadena(const char* c)
{
longitud= strlen(c);
caracteres= new char[longitud];

for(int i=0; i<=longitud; i++)
{
caracteres[i]= c[i];

}
}

Cadena::Cadena(const Cadena& c1)
{
longitud= c1.longitud;
caracteres= new char[longitud];
for(int i=0; i<=longitud; i++)
{
caracteres[i]=c1.caracteres[i];

}
}


Cadena::~Cadena()
{
delete (caracteres);
}

Cadena::Cadena(short c2)
{
longitud=0;
caracteres= new char[c2];
caracteres[0]='\0';
}

Cadena &Cadena::operator= (const Cadena& c4)
{
delete caracteres;

longitud= c4.longitud;
caracteres= new char[longitud];
for(int i=0; i<=longitud; i++)
{
caracteres[i]= c4.caracteres[i];

}
return *this;
}

Cadena& Cadena::operator= (const char* c3)
{
delete caracteres;

longitud= strlen(c3);
caracteres= new char(longitud);

for(int i=0; i<=longitud; i++)
{
caracteres[i]= c3[i];

}
return *this;
}

char& Cadena::operator[] (const short indice)
{
static char final = '\0';
return(indice >= 0 && indice < longitud ? caracteres[indice] : final);
}

Cadena operator + (const Cadena& c5,const Cadena& c6)
{
short tam;

tam=c5.longitud+c6.longitud;
Cadena Cadena(tam);
Cadena.caracteres=new char[tam];
Cadena.longitud=tam;
Cadena=strcat(c5.caracteres, c6.caracteres);
return Cadena;
}

ostream& operator << (ostream &out, Cadena &str)
{
out << str.caracteres;
return(out);
}

int main ()
{
 Cadena cad1("Hola");
 Cadena cad2("Chau");
 Cadena cad3(3);

 cout <<"\n Cadena 1: "<<cad1;
 cout<<"\n Cadena 2: "<<cad2;

 cad3=cad1+cad2;

 cout<<"\n Union de cadenas "<<cad3;
 cout<<"\ncad1[3]: "<<cad1[3];

 cad3="YO";
 cout<<"\n cadena 3: "<<cad3;

 cad3[0] = 'T';
 cad3[1] = 'U';
 cad3[2] = '\0';

 cout<<"\n Nueva cadena 3: "<<cad3;

 cad3=cad1;

 cout<<"\n cadena 3 asignada a cadena 1: "<<cad3;

return(0);
system("PAUSE");

}

Mod: Los códigos deben ir en etiquetas GeSHi