SPHERE.H
The default argument passing method in C++, pass-by-value, creates a copy of the passing argument. Passing arguments can be expensive and problematic when passing abstract data types such as class objects. Function arguments can be passed by constant reference using a combination of the & and const directives.
class sphere { public: sphere(void); ~sphere(void); void copy(const sphere&); void setRadius(float); float getRadius(void); protected: float xPosition; float yPosition; float zPosition; private: void resetPosition(void); float diameter; };
SPHERE.CXX
Without a const reference the calling function can change the argument and may lead to side affects.
#include "sphere.h"
sphere::sphere(void) { resetPosition(); diameter = 0.0; }
sphere::~sphere(void) { }
void sphere::copy(const sphere& fromSphere) { xPosition = fromSphere.xPosition; yPosition = fromSphere.yPosition; zPosition = fromSphere.zPosition; diameter = fromSphere.diameter; }
void sphere::setRadius(float value) { diameter = value*2.0; }
float sphere::getRadius(void) { return diameter/2.0; }
void sphere::resetPosition(void) { xPosition = 0.0; yPosition = 0.0; zPosition = 0.0; }