Home Segments Index Top Previous Next

661: Mainline

Suppose that you decide to count the number of cars whose serial number begins with the three characters, NYC.

One approach would be to determine whether each railroad car has such a number by way of a member function defined in the railroad_car class.

Imagine, however, that you have no access to the railroad_car source code, so you are prevented from adding any member functions. You could try, nevertheless, to achieve your objective by defining an ordinary function, check_owner, that takes a railroad-car argument and character-string argument:

                 Dereferenced train pointer, a railroad car object 
                  | 
                  |        A string to compare to the serial number 
                  |         | 
                  v         v 
             -----------  ----- 
check_owner (*(train[n]), "NYC") 

Once check_owner is defined, you can write statements that run check_owner over all the cars; increment a variable, nyc_count, whenever appropriate; and display a result:

int nyc_count = 0; 
for (n = 0; n < car_count; ++n)  
  if (check_owner (*(train[n]), "NYC")) 
    ++nyc_count; 
cout << "There are " << nyc_count << "NYC cars." << endl;