por que el codigo corre en dev-c++ 5.10 y no en turboC++ y dev-4.10 ??

Iniciado por FRANCO1a, 29 Mayo 2015, 07:05 AM

0 Miembros y 1 Visitante están viendo este tema.

FRANCO1a

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

engel lex

algo extra de informacion? simplemente no corren, no dan errores del compilador ni nada?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

FRANCO1a

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.



engel lex

son errores del linker, pero no alcanzo a distinguir el error...

aislado a eso... recomiendo que si vas a usar librerias de c++ uses todas de c++, no mezcles

Código (cpp) [Seleccionar]
#include<iostream>
#include<cstdio>
#include<cstring>


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.