Código
#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í
Gracias chic@s