hola, estoy empezando con clases y sobrecarga de operadores.
quiero sobrecargar el operador '+' para poder sumar dos vectores (a,b)+(c,d) = (a+c , b+d)
para hacer lo que hice, me guie por lo que vi en tutoriales o manuales de C,
por lo que vi, hay que sobrecargar el operador '=' (¿siempre?) y obviamente el operador '+'
hay cosas que no entiendo bien todavia, que las hice pero sin saber porque...
bueno, el programa es este:
/* sobrecarga del operador + para sumar vectores (a,b) + (c,d) = (a+c , b+d) */
#include<iostream.h>
#include<conio.h>
class CVector
{ private:
int x1,y1, x2,y2, x3,y3;
public:
void cargar_v1(int a, int b) {x1=a; y1=b;};
void cargar_v2(int c, int d) {x2=c; y2=d;};
CVector& operator = (CVector&);
CVector operator + (CVector&);
int ver_comp_x(void);
int ver_comp_y(void);
};
CVector& CVector::operator = (CVector& param)
{ x3=param.x3;
y3=param.y3;
return *this;
};
CVector CVector::operator + (CVector&)
{ CVector temp;
temp.x3=x1+x2;
temp.y3=y1+y2;
return *this;
};
int CVector::ver_comp_x(void)
{ return x3;
};
int CVector::ver_comp_y(void)
{ return y3;
};
void main(void)
{ int aa,bb,cc,dd;
CVector V1, V2;
CVector V3;
cout<<"\n (a,b) + (c,d) = (a+c , b+d)";
cout<<"\n a= "; cin>>aa;
cout<<"b= "; cin>>bb;
cout<<"\n c= "; cin>>cc;
cout<<"d= "; cin>>dd;
V1.cargar_v1(aa,bb);
V2.cargar_v2(cc,dd);
V3=V1+V2;
cout<<endl;
cout<<"a+c= "<<V3.ver_comp_x();
cout<<endl;
cout<<"b+d= "<<V3.ver_comp_y();
getch();
}les agradeceria que me expliquen cual es el error/es.
como decia, lo que no entiendo bien, es la parte de:
CVector& operator = (CVector&);
CVector operator + (CVector&);no entiendo por qué los '&' en el tipo de funcion y en los parametros.
gracias de nuevo...