La bondad de sobrecargar los operadores es que podemos agregarle nuevos comportamientos a estos y en muchos casos ahorrarnos codigo a la hora de implementar. Aqui les dejo un ejemplo sencillo de como sobrecargar operadores
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int tamano;
class vector
{
int *v; // Es un puntero, los punteros en su estructura tambien son Arrays (Arreglos)
public:
vector();
vector(int *x);
friend ostream& operator <<(ostream&, vector&);
friend istream& operator >>(istream&, vector&);
};
vector::vector()
{
cout<<"ingrese el tamanio del vector\n";
cin>>tamano;
v=new int[tamano];//Aqui estamos declarando dinamicamente el vector
for(int i=0; i<tamano;i++){
v[i]=0; }
}
istream &operator>>(istream &entra, vector &x)
{
for(int i=0; i<tamano;i++)
{
entra>>x.v[i];
//entra<<x;
/*Si quitan esta linea de los comentarios se
daran cuenta que cada vez que entra al ciclo repetitivo
la instruccion entra<<x hace el llamado
a la funcion que acabamos de sobrecargar (<<)*/
}
return (entra);
}
ostream& operator<<(ostream &sale, vector &x){
for(int i=0; i<tamano;i++){
sale<<x.v[i]<<" ";
}
return sale;
}
int main()
{
vector h;
cout<<"introduzca los valores del vector\n";
cin>>h;
cout<<"el valor del vector es..\n";
cout<<h;
getch();
return 0;
}
0 comentarios:
Publicar un comentario