![]() |
![]() |
![]() |
![]() |
![]() |
|
You prevent direct member-variable
access by declaring the member variables in a separate, private part of the
class definitionthe one marked with the
private: symbol.
You can, for example, redefine the tank_car class as
follows, with the radius and length member variables moved
from the public part of the class definition into a part marked
by the private: symbol.
class tank_car {
public:
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 radius * 2.0;}
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;}
private:
double radius, length;
};
With the tank_car class so redefined, future attempts to refer to a
tank_car object's radius and length member-variable
values via the class-member operator fail to compile.
t.radius <-- Evaluation fails to compile;
the radius member variable is in the
private part of the class definition
t.radius = 6 <-- Assignment fails to compile;
the radius member variable is in the
private part of the class definition