Witam,
#include <iostream>
#include <math.h>
using namespace std;
class Velocity
{
private:
double value;
public:
Velocity():value(0){};
Velocity(double value):value(value){};
double gamma()
{
return 1/sqrt(1-pow(value,2));
}
double getValue() const
{
return value;
}
};
Velocity operator+(const Velocity &first, const Velocity &second)
{
return first.getValue()+second.getValue();
}
istream &operator>>(istream &stream,const Velocity &velocity)
{
return stream>>velocity.getValue();
}
ostream &operator<<(ostream &stream,const Velocity &velocity)
{
return stream<<velocity.getValue();
}
int main(int, char**)
{
Velocity first(2),second(3);
Velocity final;
final=first+second;
//cin>>first; What's wrong!?
cout<<final;
cin.get();
return 0;
}
Chciałbym napisać operator >> wczytujący pędkosc ze strumienia typu istream. W sposób taki jaki to napisałem, wywołuje stack overflow. Operatory << i "+" działają bez zarzutu, tylko tutaj mam problem. Byłbym wdzięczny za wyjaśnienie bo chciałbym zrozumieć co robię źle.