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