39 lines
731 B
C++
39 lines
731 B
C++
#include "space_age.h"
|
|
|
|
namespace space_age {
|
|
|
|
#define PLANET_TABLE \
|
|
X(on_mercury, 0.2408467) \
|
|
X(on_venus, 0.61519726) \
|
|
X(on_mars, 1.8808158) \
|
|
X(on_jupiter, 11.862615) \
|
|
X(on_saturn, 29.447498) \
|
|
X(on_uranus, 84.016846) \
|
|
X(on_neptune, 164.79132)
|
|
|
|
#define X(a, b) \
|
|
double space_age:: a () const \
|
|
{ \
|
|
return on_earth() / b; \
|
|
}
|
|
|
|
PLANET_TABLE
|
|
#undef X
|
|
|
|
|
|
space_age::space_age(double seconds)
|
|
: seconds_(seconds)
|
|
{
|
|
}
|
|
|
|
double space_age::seconds() const
|
|
{
|
|
return seconds_;
|
|
}
|
|
|
|
double space_age::on_earth() const
|
|
{
|
|
return seconds() / 31557600;
|
|
}
|
|
|
|
}
|