|
|
 |
|
|
|
|
creating |
|
|
|
 |
|
|
|
|
constructors, 199 |
|
|
|
 |
|
|
|
|
free store, 151 |
|
|
|
 |
|
|
|
|
data, 314 |
|
|
|
 |
|
|
|
|
declaring, 159 |
|
|
|
 |
|
|
|
|
defining, 88 |
|
|
|
 |
|
|
|
|
deleting, 150-151 |
|
|
|
 |
|
|
|
|
derived, 254 |
|
|
|
 |
|
|
|
|
derived classes, 268 |
|
|
|
 |
|
|
|
|
determining, 385 |
|
|
|
 |
|
|
|
|
determining objects required for programs, 378 |
|
|
|
 |
|
|
|
|
HeadNode, 313 |
|
|
|
 |
|
|
|
|
hierarchies, 387 |
|
|
|
 |
|
|
|
|
identification numbers, 388 |
|
|
|
 |
|
|
|
|
instantiating, 289, 298 |
|
|
|
 |
|
|
|
|
InternalNode, 313 |
|
|
|
 |
|
|
|
|
nonexistent, 190 |
|
|
|
 |
|
|
|
|
null, 167 |
|
|
|
 |
|
|
|
|
out of scope, 200 |
|
|
|
 |
|
|
|
|
passing, 200 |
|
|
|
 |
|
|
|
|
by reference, 329 |
|
|
|
 |
|
|
|
|
by value, 328 |
|
|
|
 |
|
|
|
|
values, 273-275 |
|
|
|
 |
|
|
|
|
pointers, 149 |
|
|
|
 |
|
|
|
|
references, 166 |
|
|
|
 |
|
|
|
|
returning, 177 |
|
|
|
 |
|
|
|
|
heap, 187-189 |
|
|
|
 |
|
|
|
|
references, 185-187 |
|
|
|
 |
|
|
|
|
root, 387 |
|
|
|
 |
|
|
|
|
size (user-created), 178 |
|
|
|
 |
|
|
|
|
stored, 387-388 |
|
|
|
 |
|
|
|
|
TailNode, 313 |
|
|
|
 |
|
|
|
|
temporary |
|
|
|
 |
|
|
|
|
copy constructors, 178 |
|
|
|
 |
|
|
|
|
destroying, 178 |
|
|
|
 |
|
|
|
|
returning, 210 |
|
|
|
 |
|
|
|
|
user-defined (calling copy constructors), 200 |
|
|
|
 |
|
|
|
|
values, assigning, 89 |
|
|
|
 |
|
|
|
|
wired, 387-388 |
|
|
|
 |
|
|
|
|
.OBJ files, 351 |
|
|
|
 |
|
|
|
|
opening ( { ) brace, 21 |
|
|
|
 |
|
|
|
|
operands, 44-45 |
|
|
|
 |
|
|
|
|
operators, 44 |
|
|
|
 |
|
|
|
|
addition (+), 207, 212-215 |
|
|
|
 |
|
|
|
|
address of (&), 134 |
|
|
|
 |
|
|
|
|
assignment (=), 44-45, 216-218, 223 |
|
|
|
 |
|
|
|
|
binary, 212-214, 435 |
|
|
|
 |
|
|
|
|
combining, 45-46 |
|
|
|
 |
|
|
|
|
concatenation, 355-357 |
|
|
|
 |
|
|
|
|
conversion, 219-222 |
|
|
|
 |
|
|
|
|
decrement (--), 46 |
|
|
|
 |
|
|
|
|
postfix, 46-48 |
|
|
|
 |
|
|
|
|
prefix, 46-48 |
|
|
|
 |
|
|
|
|
dereference, 138 |
|
|
|
 |
|
|
|
|
dot (.), 151 |
|
|
|
 |
|
|
|
|
dynamic cast, 283, 286 |
|
|
|
 |
|
|
|
|
equals (==), 44-45, 50-51, 218 |
|
|
|
 |
|
|
|
|
greater than (>), 50-51 |
|
|
|
 |
|
|
|
|
greater than or equal to (>=), 50-51 |
|
|
|
 |
|
|
|
|
Increment, 212, 214 |
|
|
|
 |
|
|
|
|
increment (++), 46 |
|
|
|
 |
|
|
|
|
postfix, 46-48 |
|
|
|
 |
|
|
|
|
prefix, 46-48 |
|
|
|
 |
|
|
|
|
index ([]), 229 |
|
|
|
 |
|
|
|
|
indirection, 138 |
|
|
|
 |
|
|
|
|
indirection (*), 138 |
|
|
|
 |
|
|
|
|
exploring contents of pointers, 142 |
|
|
|
 |
|
|
|
|
pointers, 138 |
|
|
|
 |
|
|
|
|
less than (<), 50-51 |
|
|
|
 |
|
|
|
|
less than or equal to (<=), 50-51 |
|
|
|
 |
|
|
|
|
logical, 57-59 |
|
|
|
 |
|
|
|
|
mathematical, 45 |
|
|
|
 |
|
|
|
|
member access (.), 94, 166, 229 |
|
|
|
 |
|
|
|
|
multiplication (*), 207 |
|
|
|
 |
|
|
|
|
not equals (!=), 50-51 |
|
|
|
 |
|
|
|
|
output redirection (<<), 21 |
|
|
|
 |
|
|
|
|
overloading, 207-208, 212-214, 222 |
|
|
|
 |
|
|
|
|
addition (+), 214-215 |
|
|
|
 |
|
|
|
|
increment, 208-210 |
|
|
|
 |
|
|
|
|
limitations, 215 |
|
|
|
 |
|
|
|
|
postfix increment, 210 |
|
|
|
 |
|
|
|
|
precautions, 215 |
|
|
|
 |
|
|
|
|
points-to (->), 151 |
|
|
|
 |
|
|
|
|
postfix, 223 |
|
|
|
 |
|
|
|
|
precedence, 443-444 |
|
|
|
 |
|
|
|
|
prefix, 223 |
|
|
|
 |
|
|
|
|
relational, 58-60 |
|
|
|
 |
|
|
|
|
scoping (::), 340 |
|
|
|
 |
|
|
|
|
stringizing (#), 355-356 |
|
|
|
 |
|
|
|
|
subscript, 235-236 |
|
|
|
 |
|
|
|
|
unary, 212-214, 435 |
|
|
|
 |
|
|
|
|
original values, 210 |
|
|
|
 |
|
|
|
|
out of scope objects, 200 |
|
|
|
 |
|
|
|
|
output redirection operator (<<), 21 |
|
|
|
 |
|
|
|
|
overloaded functions, 205 |
|
|
|
 |
|
|
|
|
overloading, 262, 280 |
|
|
|
 |
|
|
|
|
class member functions, 193-195 |
|
|
|
 |
|
|
|
|
constructors, 199 |
|
|
|
 |
|
|
|
|
in derived classes, 259-260 |
|
|
|
 |
|
|
|
|
destructors, 199 |
|
|
|
 |
|
|
|
|
functions, 75-76, 81 |
|
|
|
 |
|
|
|
|
advantages, 198, 205 |
|
|
|
 |
|
|
|
|
parameters, 75 |
|
|
|
 |
|
|
|
|
return types, 75 |
|
|
|
 |
|
|
|
|
when to use, 198 |
|
|
|
 |
|
|
|
|
operators, 207-208, 212-214, 222 |
|
|
|
 |
|
|
|
|
addition (+), 214-215 |
|
|
|
 |
|
|
|
|
increment, 208-210 |
|
|
|
 |
|
|
|
|
limitations, 215 |
|
|
|
 |
|
|
|
|
postfix increment, 210 |
|
|
|
 |
|
|
|
|
precautions, 215 |
|
|
|
 |
|
|
|
|
overriding, 260-262, 280 |
|
|
|
 |
|
|
|
|
functions, 260 |
|
|
|
 |
|
|
|
|
methods, 260-262 |
|
|
|
 |
|
|
|
|
pure virtual functions, 298 |
|
|
|
 |
|
|
|
|
owning pointers, 189-190 |
|
|
|
 |
|
|
|
|
parallel hierarchies, 385 |
|
|
|
 |
|
|
|
|
parameter lists, 62-63 |
|
|
|
 |
|
|
|
|
parameterized List objects, declaring, 404-405 |
|
|
|
 |
|
|
|
|
parameterized lists, 411-412 |
|
|
|
 |
|
|
|
|
parameterized types, 404 |
|
|
|
 |
|
|
|
|
parameters, 24-25, 404. See also arguments |
|
|
|
 |
|
|
|
|
callling functions, 73 |
|
|
|
 |
|
|
|
|
changing (swap() function), 171 |
|
|
|
 |
|
|
|
|
copy constructors, 200 |
|
|
|
 |
|
|
|
|
declaring |
|
|
|
 |
|
|
|
|
default, 73-75 |
|
|
|
 |
|
|
|
|
function definitions, 73 |
|
|
|
 |
|
|
|
|
function prototypes, 73 |
|
|
|
 |
|
|
|
|
default constructors, 198 |
|
|
|
 |
|
|
|
|
function overloading, 75 |
|
|
|
|
|