// The use of constructor function
#include <iostream>
#include <cmath>
using namespace std;

class Planet{
  public:
    Planet(double, double);
    double Density();
    double Gravity();
  private:
    double M, R, G;
};

int main(){
   Planet Mars(6.4e23, 3.4e6), Jupiter(1.9e27, 7.0e7);

   cout << "Mars Density = " << Mars.Density() << endl;
   cout << "Mars Gravity = " << Mars.Gravity() << endl;

   cout << "Jupiter Density = " << Jupiter.Density() << endl;
   cout << "Jupiter Gravity = " << Jupiter.Gravity() << endl;
}

// Constructor function to set the mass and radius of the planet
Planet::Planet(double mass, double radius){
  M = mass;
  R = radius;
  G = 6.67428e-11;
}
// Mass density in g/cm3
double Planet::Density(){
  double d = M/(4.0*M_PI*R*R*R/3);
  return d * 1.0e-3;
}
// Surface gravity in m/s2
double Planet::Gravity(){
  double g = G*M/(R*R);
  return g;
}
