ownership, 285
passing by reference,
264-265
reassigning, 237
returning multiple values,
268-270
RTTI (Run Time Type
Identification), 453
“stomping” on, 247
stray/dangling, 245-248
cautions, 247
compared to null
pointers, 248
creating, 246-247
subtracting, 423-426
this, 243-245, 309-310
v-pointers (virtual
function pointers), 396,
487
wild, 224
points-to operator (->),
240-241
polymorphism, 11, 118-121,
391, 449
pop_back( ) function, 700
pop_front( ) function, 702
postfix operator, 75-76,
311-313
pound symbol (#), 26
powertypes, 360-363
precedence of operators, 77,
92-93, 819-820
predefined macros, 760
prefix operators, 75-76
compared to postfix
operator, 311-313
overloading, 304-306
preliminary classes,
designing, 351-352
preprocessor, 26
class invariants, 764-769
commands
#define, 752-754
#else, 754-755
#ifndef, 754
inclusion guards, 755-756
inline functions, 771-772
interim values, printing,
769, 771
macros
assert( ), 761-764
compared to functions,
771
compared to templates,
771
defining, 756-757
parameters, 757
parentheses ( ),
757-759
predefined, 760
syntax, 757
string manipulation,
759-760
substitutions
constants, 753
strings, 752
tests, 753-754
printf( ) function, 636
compared to streams,
620-622
limitations, 620, 635
printing
characters, 57-58
interim values, 769-771
printf( ) function, 620-622
to screen, 28-30
private classes, 144-146
private data members,
376-377
accessing, 144, 147
advantages, 172
security, 148-149
private inheritance, 562-563
compared to containment,
590
methods, 562
sample program listing,
563-570
usage tips, 571
problem solving, 7-8
procedures, 8, 138. See also
functions; methods
process of software design,
331-333
controversies, 335
iterative development, 332
methods, 332
Rational Unified Process,
332
program design, 329
classes, 350
CRC cards, 354-357
data manipulation, 353
device protocols, 354
dynamic model,
363-366
preliminary classes,
351-352
relationships, 358-363
static model, 354
transformations,
352-353
views, 353
models, 329-330
process, 331-333
controversies, 335
iterative development,
332
methods, 332
Rational Unified
Process, 332
requirements documents,
335-336
application analysis,
347
artifacts, 349-350
project budgets and
timelines, 348
systems analysis,
347-348
use-case analysis,
336-347
visualizations, 349
UML (Unified Modeling
Language), 330-331
vision statements, 335
904 pointers
34 0672327112 index.qxd 11/19/04 12:31 PM Page 904