Suppose that you develop a big program around a tank_car
class definition that includes readers and writers for
radius
and length
member variables, as well as for an imaginary
diameter
member variable:
class tank_car { public: double radius, length; tank_car ( ) {radius = 3.5; length = 40.0;} tank_car (double r, double l) {radius = r; length = l;} double read_radius ( ) {return radius;} void write_radius (double r) {radius = r;} double read_diameter ( ) {return 2.0 * radius;} void write_diameter (double d) {radius = d / 2.0;} double read_length ( ) {return length;} void write_length (double l) {length = l;} double volume ( ) {return pi * radius * radius * length;} };
Next, suppose that you discover that your program refers to diameters more often than radii. If speed is a great concern, you should arrange to store diameters, rather than radii, so as to avoid multiplication on reading and division on writing.