#include class sphere { public: void assign_center( double x, double y, double z ); double get_x_coord( void ); double get_y_coord( void ); double get_z_coord( void ); void assign_radius( double r ); double get_radius( void ); double volume( void ); sphere shifted_sphere ( double dx, double dy, double dz ); void shift_sphere( double dx, double dy, double dz ); private: // Only members functions can access private data double x_center, y_center, z_center, radius; }; void sphere::assign_center( double x, double y, double z ) { x_center = x; y_center = y; z_center = z; return; } double sphere::get_x_coord( void ) { return( x_center ); } double sphere::get_y_coord( void ) { return( y_center ); } double sphere::get_z_coord( void ) { return( z_center ); } void sphere::assign_radius( double r ) { radius = r; return; } double sphere::get_radius( void ) { return( radius ); } double sphere::volume( void ) { double V = 4.0 * M_PI * pow( radius, 3 ) / 3.0; return( V ); } sphere sphere::shifted_sphere( double dx, double dy, double dz ) { sphere new_sphere; // Since this function is a member function, it can access private data. new_sphere.x_center = x_center + dx; new_sphere.y_center = y_center + dy; new_sphere.z_center = z_center + dz; new_sphere.radius = radius; return( new_sphere ); } void sphere::shift_sphere( double dx, double dy, double dz ) { x_center += dx; y_center += dy; z_center += dz; return; }