|
|
 |
|
|
|
|
program requirements, determining, 377, 384-385 |
|
|
|
 |
|
|
|
|
programming |
|
|
|
 |
|
|
|
|
large groups, 392-393 |
|
|
|
 |
|
|
|
|
object-oriented, 7-9, 402 |
|
|
|
 |
|
|
|
|
procedural, 6, 313 |
|
|
|
 |
|
|
|
|
structured, 6-7 |
|
|
|
 |
|
|
|
|
programming languages |
|
|
|
 |
|
|
|
|
assemblers, 6 |
|
|
|
 |
|
|
|
|
BASIC, 6 |
|
|
|
 |
|
|
|
|
COBOL, 6 |
|
|
|
 |
|
|
|
|
history, 5-6 |
|
|
|
 |
|
|
|
|
machine language, 6 |
|
|
|
 |
|
|
|
|
programs |
|
|
|
 |
|
|
|
|
aborting, 429 |
|
|
|
 |
|
|
|
|
accessing, 438 |
|
|
|
 |
|
|
|
|
designing, 10, 102, 376, 388, 393 |
|
|
|
 |
|
|
|
|
80/80 rule, 390 |
|
|
|
 |
|
|
|
|
analysis phase, 377, 384-385 |
|
|
|
 |
|
|
|
|
buy/build question, 389 |
|
|
|
 |
|
|
|
|
classes, 379, 385-386, 390-391 |
|
|
|
 |
|
|
|
|
conceptualization phase, 377, 383 |
|
|
|
 |
|
|
|
|
design questions, 393-394 |
|
|
|
 |
|
|
|
|
files, 389 |
|
|
|
 |
|
|
|
|
high-level, 377-378 |
|
|
|
 |
|
|
|
|
low-level, 377 |
|
|
|
 |
|
|
|
|
multiple inheritance, adding, 386 |
|
|
|
 |
|
|
|
|
objects, determining, 385 |
|
|
|
 |
|
|
|
|
ongoing considerations, 393 |
|
|
|
 |
|
|
|
|
parallel hierarchies, 385 |
|
|
|
 |
|
|
|
|
prototypes. See prototypes, 389-390 |
|
|
|
 |
|
|
|
|
required objects, determining, 378 |
|
|
|
 |
|
|
|
|
requirements, determining, 377, 384-385 |
|
|
|
 |
|
|
|
|
simulations, 376 |
|
|
|
 |
|
|
|
|
use cases, 377 |
|
|
|
 |
|
|
|
|
executable, turning object files into, 12 |
|
|
|
 |
|
|
|
|
executing, 23 |
|
|
|
 |
|
|
|
|
invalid, 167 |
|
|
|
 |
|
|
|
|
text, writing, 435-436 |
|
|
|
 |
|
|
|
|
translating (interpreters), 6 |
|
|
|
 |
|
|
|
|
turning source code into, 12 |
|
|
|
 |
|
|
|
|
whitespace, 60 |
|
|
|
 |
|
|
|
|
writing, 11 |
|
|
|
 |
|
|
|
|
protected access, 438 |
|
|
|
 |
|
|
|
|
protected functions, 252 |
|
|
|
 |
|
|
|
|
protected keywords, 252 |
|
|
|
 |
|
|
|
|
protected members, 252 |
|
|
|
 |
|
|
|
|
prototypes, 64-65, 389 |
|
|
|
 |
|
|
|
|
architecture, 390 |
|
|
|
 |
|
|
|
|
building, 389-390 |
|
|
|
 |
|
|
|
|
functionality, 390 |
|
|
|
 |
|
|
|
|
functions, 63-65, 73 |
|
|
|
 |
|
|
|
|
functions, 25, 62 |
|
|
|
 |
|
|
|
|
interface design, 390 |
|
|
|
 |
|
|
|
|
pThree (pointer to constant), 157 |
|
|
|
 |
|
|
|
|
pTwo (constant pointer), 157 |
|
|
|
 |
|
|
|
|
public access, 438 |
|
|
|
 |
|
|
|
|
public accessor methods, 320, 329 |
|
|
|
 |
|
|
|
|
public data members, 89-90 |
|
|
|
 |
|
|
|
|
public functions, 266 |
|
|
|
 |
|
|
|
|
public member data, 98 |
|
|
|
 |
|
|
|
|
pure virtual functions, 289-290, 294, 297-299 |
|
|
|
 |
|
|
|
|
declaring, 290 |
|
|
|
 |
|
|
|
|
implementing, 291, 294 |
|
|
|
 |
|
|
|
|
overriding, 298 |
|
|
|
 |
|
|
|
|
quick windows, 11 |
|
|
|
 |
|
|
|
|
r-values, 44-45 |
|
|
|
 |
|
|
|
|
raising exceptions, 427-428 |
|
|
|
 |
|
|
|
|
reading past end of arrays, 238 |
|
|
|
 |
|
|
|
|
reassigning references, 165-166 |
|
|
|
 |
|
|
|
|
redirection symbol (<<), 15 |
|
|
|
 |
|
|
|
|
reference indicators, 436 |
|
|
|
 |
|
|
|
|
references, 162, 166, 175 |
|
|
|
 |
|
|
|
|
addresses, 163 |
|
|
|
 |
|
|
|
|
advantages, 185 |
|
|
|
 |
|
|
|
|
assigning, 165-166 |
|
|
|
 |
|
|
|
|
copy constructors, 200 |
|
|
|
 |
|
|
|
|
creating, 162-163 |
|
|
|
 |
|
|
|
|
creating aliases, 166 |
|
|
|
 |
|
|
|
|
disadvantages, 185 |
|
|
|
 |
|
|
|
|
initializing, 162-164, 199 |
|
|
|
 |
|
|
|
|
null, 167 |
|
|
|
 |
|
|
|
|
objects, 166 |
|
|
|
 |
|
|
|
|
passing, 180, 183-185, 190 |
|
|
|
 |
|
|
|
|
passing by (exceptions), 429, 433 |
|
|
|
 |
|
|
|
|
passing objects by, 329 |
|
|
|
 |
|
|
|
|
passing values, 167-168 |
|
|
|
 |
|
|
|
|
multiple, 172, 174-175 |
|
|
|
 |
|
|
|
|
reassigning, 165-166 |
|
|
|
 |
|
|
|
|
returning (nonexistent objects), 185-187, 190 |
|
|
|
 |
|
|
|
|
swap() function, 170-171 |
|
|
|
 |
|
|
|
|
when to use, 185 |
|
|
|
 |
|
|
|
|
registers, 79, 143 |
|
|
|
 |
|
|
|
|
relational expressions, 50 |
|
|
|
 |
|
|
|
|
relational operators, 50, 58-60 |
|
|
|
 |
|
|
|
|
relational precedence, 58-59 |
|
|
|
 |
|
|
|
|
reserved keywords, 445-446 |
|
|
|
 |
|
|
|
|
reserving memory (free store), 144 |
|
|
|
 |
|
|
|
|
resources, allocating, 423 |
|
|
|
 |
|
|
|
|
responsibility, delegating, 303, 310 |
|
|
|
 |
|
|
|
|
return addresses (functions), 80 |
|
|
|
 |
|
|
|
|
return keyword, 71 |
|
|
|
 |
|
|
|
|
return statements, 25, 65, 73 |
|
|
|
 |
|
|
|
|
return types, 24, 63 |
|
|
|
 |
|
|
|
|
functions, 65 |
|
|
|
 |
|
|
|
|
int, 65 |
|
|
|
 |
|
|
|
|
overloading, 75 |
|
|
|
 |
|
|
|
|
void, 65 |
|
|
|
 |
|
|
|
|
stacks, 80 |
|
|
|
 |
|
|
|
|
returning |
|
|
|
 |
|
|
|
|
functions |
|
|
|
 |
|
|
|
|
values, 71-73, 78 |
|
|
|
 |
|
|
|
|
void, 71, 78 |
|
|
|
 |
|
|
|
|
memory to free store, 145 |
|
|
|
 |
|
|
|
|
multiple values, 172 |
|
|
|
 |
|
|
|
|
objects, 177, 187-189 |
|
|
|
 |
|
|
|
|
pointers, 189 |
|
|
|
 |
|
|
|
|
references (nonexistent objects), 185-187, 190 |
|
|
|
 |
|
|
|
|
temporary objects, 210 |
|
|
|
 |
|
|
|
|
values, 24 |
|
|
|
 |
|
|
|
|
functions, 65 |
|
|
|
 |
|
|
|
|
main() function, 21-23 |
|
|
|
 |
|
|
|
|
voids, 24 |
|
|
|
 |
|
|
|
|
reusability, 7-8 |
|
|
|
 |
|
|
|
|
rich text format, 391 |
|
|
|
 |
|
|
|
|
root classes, 386 |
|
|
|
 |
|
|
|
|
common, 386 |
|
|
|
 |
|
|
|
|
data, 388 |
|
|
|
|
|