Sobrecarga de operadores
¿Como puedo devolver un puntero en una función donde sobrecargo el operador +?
¿Donde tengo el error? Es que esto ni compila
Gracias!!
**********************************************
#include <iostream.h>
class Cadena{
private:
string cad;
public:
Cadena(string c){
cad=c;
}
void setCad(string c){
cad=c;
}
string getCad()
{
return cad;
}
}
Cadena * operator + (Cadena *a, Cadena *b){
string total;
total=a->getCad()+ b->getCad();
return new Cadena(total);
}
int main() {
Cadena *a=new Cadena("Hola ");
Cadena *b=new Cadena(" a todos");
Cadena *c=a+b;
cout << c->getCad();
delete a;
delete b;
delete c;
getchar();
}
¿Donde tengo el error? Es que esto ni compila
Gracias!!
**********************************************
#include <iostream.h>
class Cadena{
private:
string cad;
public:
Cadena(string c){
cad=c;
}
void setCad(string c){
cad=c;
}
string getCad()
{
return cad;
}
}
Cadena * operator + (Cadena *a, Cadena *b){
string total;
total=a->getCad()+ b->getCad();
return new Cadena(total);
}
int main() {
Cadena *a=new Cadena("Hola ");
Cadena *b=new Cadena(" a todos");
Cadena *c=a+b;
cout << c->getCad();
delete a;
delete b;
delete c;
getchar();
}
Supongo que string no te da problemas y en tu compilador existe. De todas formas, no se si iostream.h tiene dentro string. Si te protesta al compilar por el string, te faltará algún include
Aparte de esto, en la llave que cierra el class debes poner un punto y coma
class Cadena {
...
};
Cadena * operator + ...
Se bueno.
Aparte de esto, en la llave que cierra el class debes poner un punto y coma
class Cadena {
...
};
Cadena * operator + ...
Se bueno.
