Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include "funciones.h"
- using namespace std;
- const int Distancia::kilometros=0;
- const int Distancia::yardas=1;
- const int Distancia::pulgadas=2;
- const int Distancia::metros=3;
- const char Distancia::unid[4][30]= {"kilometros","yardas","pulgadas","metros"};
- const float Distancia::conver[4]= {0.001,1.09361,39.3701,1};
- Distancia::Distancia(float dist,int uni)
- {
- this->distancia=dist;
- this->unidad=uni;
- }
- ostream & operator<<(ostream &salida,const Distancia &dist)
- {
- salida<<dist.distancia<<" "<<Distancia::unid[dist.unidad];
- return salida;
- }
- Distancia Distancia::operator+(const Distancia &dist) const
- {
- float aux;
- if(this->unidad!=dist.unidad)
- aux=(dist.distancia/Distancia::conver[dist.unidad])+(this->distancia/Distancia::conver[this->unidad]);
- else
- aux=dist.distancia+this->distancia;
- return Distancia(aux,((this->unidad!=dist.unidad)?(Distancia::metros):(this->unidad)));
- }
- Distancia & Distancia::convertir(int unidad)
- {
- if(this->unidad!=unidad)
- {
- this->unidad/=Distancia::conver[this->unidad];
- this->unidad*=Distancia::conver[unidad];
- this->unidad=unidad;
- }
- return *this;
- }
- istream &operator>>(istream &entrada,Distancia &m)
- {
- entrada>>m.distancia>>m.unidad;
- return entrada;
- }
- Distancia operator+(float num,const Distancia &dist)
- {
- float aux;
- if(dist.distancia!=Distancia::metros)
- aux=dist.distancia/Distancia::conver[dist.unidad]+num;
- else
- aux=dist.distancia+num;
- return Distancia(aux,Distancia::metros);
- }
- bool Distancia::operator>=(const Distancia &dist) const
- {
- float aux1,aux2;
- if(this->unidad!=dist.unidad)
- {
- aux2=this->distancia/Distancia::conver[this->unidad];
- aux1=dist.distancia/Distancia::conver[dist.unidad];
- }else
- {
- aux2=this->distancia;
- aux1=dist.distancia;
- }
- return aux1>=aux2;
- }
- Distancia &Distancia::operator+=(const Distancia &dist)
- {
- float aux;
- if(this->unidad!=dist.unidad)
- {
- aux=dist.distancia/Distancia::conver[dist.unidad];
- aux*=Distancia::conver[this->unidad];
- this->distancia+=aux;
- }else
- this->distancia+=dist.distancia;
- return *this;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement