Thinking in C++ Vol 2 - Practical Programming |
Prev |
Home |
Next |
If you ve programmed in C, you are accustomed to the family
of functions that write, search, modify, and copy char arrays. There are
two unfortunate aspects of the Standard C library functions for handling char
arrays. First, there are two loosely organized families of them: the plain
group, and the ones that require you to supply a count of the number of
characters to be considered in the operation at hand. The roster of functions
in the C char array library shocks the unsuspecting user with a long
list of cryptic, mostly unpronounceable names. Although the type and number of
arguments to the functions are somewhat consistent, to use them properly you
must be attentive to details of function naming and parameter passing.
The second inherent trap of the standard C char array
tools is that they all rely explicitly on the assumption that the character
array includes a null terminator. If by oversight or error the null is omitted
or overwritten, there s little to keep the C char array functions from
manipulating the memory beyond the limits of the allocated space, sometimes
with disastrous results.
C++ provides a vast improvement in the convenience and
safety of string objects. For purposes of actual string handling
operations, there are about the same number of distinct member function names
in the string class as there are functions in the C library, but because
of overloading the functionality is much greater. Coupled with sensible naming
practices and the judicious use of default arguments, these features combine to
make the string class much easier to use than the C library char
array functions.
Thinking in C++ Vol 2 - Practical Programming |
Prev |
Home |
Next |