Website Summary Files Commits Branches @commit @diff @stats
path: root / Week09 / Exercise04 / Rover.h
blob: 4286f061c58f5375c394766304df44b4824c5220 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef _ROVER
#define _ROVER

#include <ostream>
#include <istream>

class Rover {
	double x;
	double y;
	double forward;

	void moveDistByAngle(double dist, double angle);

public:
	Rover();

	friend Rover& operator<(double dist, Rover& rover);
	Rover& operator>(double dist);
	Rover& operator^(double dist);
	friend Rover& operator<<(double degrees, Rover& rover);
	Rover& operator>>(double degrees);

	friend std::ostream& operator<<(std::ostream& ostr, const Rover& rover);
	friend std::istream& operator>>(std::istream& istr, Rover& rover);
};

#endif /* _ROVER */