Ayuda con sobrecarga de operadores
Publicado por Jose Morales (16 intervenciones) el 25/09/2005 01:44:51
Hola lo que pasa eske estoy haciendo un codigo en el que kiero utilizar el operador += para un tipo de string, de modo si declaro una string r="hola " y luego otra string w=" mundo", r+=w, aparezca en r "hola mundo", ya cree el codgio, solo que nose en que me estoy ekiovancando ya ke al ejecutralo me sale error, ayudenme porfavor. aki esta el codigo gracias.
#include <iostream.h>
#include <string.h>
class string{
private:
char *v;
int lon;
public:
string(){lon=0; v=new char[10];}
string(char* str);
~string(){delete v;}
void operator+=(const string &);
string & operator=(const string &);
char *mostrar(){return v;}
};
string::string(char *str){
lon=strlen(str)+1;
v=new char[lon];
strcpy(v,str);
}
void string::operator +=(const string & str){ //Aqui esta el error, nose ke sea
lon=strlen(v)+strlen(str.v)+1;
string aux(v);
delete v;
v=new char[lon];
v=strcat(aux.v,str.v);
}
string &string::operator=(const string& cad){
lon=strlen(cad.v)+1;
delete v;
v=new char[lon];
strcpy(v,cad.v);
return *this;
}
int main()
{
string u=("Esto es solo un test");
string r=(" y este tambien");
u+=r;
cout<<"u= "<<u.mostrar()<<endl;
return 0;
}
#include <iostream.h>
#include <string.h>
class string{
private:
char *v;
int lon;
public:
string(){lon=0; v=new char[10];}
string(char* str);
~string(){delete v;}
void operator+=(const string &);
string & operator=(const string &);
char *mostrar(){return v;}
};
string::string(char *str){
lon=strlen(str)+1;
v=new char[lon];
strcpy(v,str);
}
void string::operator +=(const string & str){ //Aqui esta el error, nose ke sea
lon=strlen(v)+strlen(str.v)+1;
string aux(v);
delete v;
v=new char[lon];
v=strcat(aux.v,str.v);
}
string &string::operator=(const string& cad){
lon=strlen(cad.v)+1;
delete v;
v=new char[lon];
strcpy(v,cad.v);
return *this;
}
int main()
{
string u=("Esto es solo un test");
string r=(" y este tambien");
u+=r;
cout<<"u= "<<u.mostrar()<<endl;
return 0;
}
Valora esta pregunta


0