Tengo mas dudas:
Ese operator<< lo podría opner como método de la clase y que hiciese la misma tarea? A mi no se me ocurre porque cout no es objeto de Miclase.
Y otra cosa:
Como hago para que en el operador de asignación detecte que se trata del mismo objeto y no lo borre.
Algo como if(*this != objeto_pasado) {el resto del codigo }
Los operadores de comparación no funcionan así![:( :(](https://forum.elhacker.net/Smileys/navidad/sad.gif)
Gracias chic@s
Código (c) [Seleccionar]
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class MiClase {
private:
int num1;
int num2;
public:
MiClase(int x=0, int y=0) :
num1(x), num2(y) {}
MiClase& operator=(const MiClase& mib) {
num1 = 0;
num2 = 0;
num1 = mib.num1;
num2 = mib.num2;
return *this;
}
// Getters
int getnum1(void) const {
return num1;
}
int getnum2(void) const {
return num2;
}
};
ostream& operator<<(ostream& os, const MiClase& miobj) {
os << miobj.getnum1() << " " << miobj.getnum2();
return os;
}
int main(void) {
MiClase a(1, 2), b(3, 4);
cout << "Objeto a: " << a << endl;
a = a;
cout << "Objeto a despues de a = a: " << a << endl;
return 0;
}
Ese operator<< lo podría opner como método de la clase y que hiciese la misma tarea? A mi no se me ocurre porque cout no es objeto de Miclase.
Y otra cosa:
Como hago para que en el operador de asignación detecte que se trata del mismo objeto y no lo borre.
Algo como if(*this != objeto_pasado) {el resto del codigo }
Los operadores de comparación no funcionan así
![:( :(](https://forum.elhacker.net/Smileys/navidad/sad.gif)
Gracias chic@s