SYMBOLS
! (logical NOT) operator, 76-77 DAY 4
!= (not equals) operator, 67 DAY 4
# (pound symbol)
preprocessors, 20 DAY 2
stringizing operator, 537 DAY 17
## (concatenation) operator, 537-538 DAY 17
% (modulus) operator, 59-60 DAY 4
%= (self-assigned modulus) operator, 62 DAY 4
& (ampersand)
address of operator with references, 229-232 DAY 9
bitwise AND operator, 655 DAY 21
reference operator, 228 DAY 9
&& (logical AND) operator, 76-77 DAY 4
* (asterisk)
indirection operator, 201-202 DAY 8
multiplication operator, 59 DAY 4
*= (self-assigned multiplication) operator, 62 DAY 4
+ (addition) operator, 59 DAY 4
overloading, 286-287 DAY 10
++ (increment) operator, 62 DAY 4
overloading
postfix, 282-284 DAY 10
prefix, 276-278 DAY 10
returning
temporary objects, 278-280 DAY 10
this pointer, 281-282 DAY 10
+= (self-assigned addition) operator, 62 DAY 4
- (subtraction) operator, 59 DAY 4
-- (decrement) operator, 62 DAY 4
-= (self-assigned subtraction) operator, 62 DAY 4
. (member access) operator, 127 DAY 6
/ (division) operator, 59 DAY 4
/* characters, C-style comments, 23 DAY 2
// characters, C++-style comment, 23 DAY 2
/= (self-assigned division) operator, 62 DAY 4
< (less than) operator, 67 DAY 4
<< (insertion) operator
as friend function, 596-599 DAY 19
overloading, 478-480 DAY 15
with cout object, 504 DAY 16
= (assignment) operator, 40, 59 DAY 3 DAY 4
combining with mathematical operators, 61-62 DAY 4
overloading, 288-291 DAY 10
== (equals) operator, 66 DAY 4
> (greater than) operator, 67 DAY 4
>= (greater than or equals) operator, 67 DAY 4
>> (extraction) operator (overloaded), with cin object, 496-501 DAY 16
?: (conditional) operator, 79-80 DAY 4
[] (index) operator, 308 DAY 11
\ (backslash) escape character, 46 DAY 3
\" (double quote) escape character, 47 DAY 3
\' (single quote) escape character, 47 DAY 3
\? (question mark) escape character, 47 DAY 3
\\ (backslash displayed) escape character, 47 DAY 3
\0 (null) character, 317 DAY 11
\b (backspace) escape character, 47 DAY 3
\n (new line) escape character, 21, 47 DAY 2 DAY 3
\t (tab) escape character, 23, 47 DAY 2 DAY 3
^ (bitwise exclusive OR) operator, 656 DAY 21
{} (braces), 21 DAY 2
aligning, 70 DAY 4
in nested if statements, 74-76 DAY 4
| (bitwise OR) operator, 655 DAY 21
|| (logical OR) operator, 76-77 DAY 4
~ (complement) operator, 656 DAY 21
0 (zero), false value, 66 DAY 4
in if statements, 78-79 DAY 4
80/20 design rule, 569 DAY 18
80/80 design rule, 569 DAY 18
A
abstract data types, see ADTs
accessing portions of programs, coding styles, 664-665 DAY 21
accessor member functions, 131-132 DAY 6
Add() function, 284-285 DAY 10
addition, incrementing, 62-64 DAY 4
addition operators
+ (addition), 59 DAY 4
overloading, 286-287 DAY 10
+= (self-assigned), 62 DAY 4
address of (&) operator, with references, 229-232 DAY 9
addresses
author, 668 DAY 21
obtaining, 198-200 DAY 8
pointers, checking, 204-206 DAY 8
references, 229-232 DAY 9
versus pointers versus variable values, 202-203 DAY 8
ADTs (abstract data types), 393-396 DAY 13
deriving from other ADTs, 400-404 DAY 13
determining when to make abstract, 404 DAY 13
pure virtual functions, 396-397 DAY 13
alarm system simulation, 555-560 DAY 18
aliases
references, 228-232 DAY 9
variables, 42-43 DAY 3
aligning
{} (braces), 70 DAY 4
coding styles, 661 DAY 21
switch statements, coding styles, 661 DAY 21
tabs, coding styles, 660 DAY 21
allocating memory on free store, 208-209 DAY 8
ambiguity, 383-388 DAY 13
AND operators
& (bitwise), 655 DAY 21
&& (logical), 76-77 DAY 4
APIs (Application Program Interfaces), 570-571 DAY 18
appending
strings, 648-649 DAY 21
to files, 515-517 DAY 16
arguments
command-line, 519-522 DAY 16
functions, 98 DAY 5
passing by reference, 234-238 DAY 9
passing by value, 98-100 DAY 5
passing pointers to functions as, 423-424 DAY 14
ofstream objects, changing defaults, 515-517 DAY 16
array classes
parameterized, 586-587 DAY 19
templates
declaring, 587-589 DAY 19
implementing, 589-592 DAY 19
names, 589 DAY 19
writing, 334 DAY 11
arrays, 300 DAY 11
char (character), 317-319 DAY 11
concatenating, 537-538, 648-649 DAY 17 DAY 21
copying into other strings, 319-321, 645-648 DAY 11 DAY 21
extracting from input, 499-501 DAY 16
filling with cin, 493-495 DAY 16
lengths, determining, 644-645 DAY 21
parsing, 504 DAY 16
substitutions, 526-529, 537 DAY 17
writing to output, 505-506 DAY 16
declaring, 300, 307-308 DAY 11
on free store, 314 DAY 11
deleting on free store, 316-317 DAY 11
elements, 301-302 DAY 11
numbering, 302 DAY 11
initializing, 305-306 DAY 11
multidimensional, 309-310 DAY 11
initializing, 310-312 DAY 11
names, as pointers, 315-316 DAY 11
of objects, 308-309 DAY 11
of pointers, 312-314 DAY 11
to functions, 421-422 DAY 14
to member functions, 429-430 DAY 14
versus pointers to arrays, 314-315 DAY 11
sorting, 652-654 DAY 21
storing unknown quantities of data, 312 DAY 11
writing past ends of, 302-304 DAY 11
fence post errors, 305 DAY 11
ASCII
code set, 694 Appendix C
converting to integers, 651-652 DAY 21
assembly code, viewing, 639 DAY 20
assert() macro, 538-550 DAY 17
coding styles, 666 DAY 21
assignment operator (=), 40, 59 DAY 3 DAY 4
combining with mathematical operators, 61-62 DAY 4
overloading, 288-291 DAY 10
atoi() function, 651-652 DAY 21
author address, 668 DAY 21
B
backslash (\) escape character, 46 DAY 3
backslash displayed (\\) escape character, 47 DAY 3
backspace (\b) escape character, 47 DAY 3
bad() function, 513 DAY 16
base classes, 339-340 DAY 12
initializing, 346-350 DAY 12
overriding member functions, 350-355 DAY 12
percolating functions up into, 374 DAY 13
shared, multiple inheritance ambiguity, 384-388 DAY 13
binary
files versus text files, 517-519 DAY 16
numbering system, 692-694 Appendix C
operators, overloading, 287 DAY 10
binding
dynamic (run-time), 359 DAY 12
static (compile-time), 359 DAY 12
bit fields, 657-660 DAY 21
bits (BInary digiTs), 693 Appendix C
clearing, 656-657 DAY 21
flipping, 657 DAY 21
setting, 656 DAY 21
bitwise operators, 655-656 DAY 21
blocks, 57 DAY 4
catch, 619, 623-627 DAY 20
defining local variables within, 96-97 DAY 5
try, 619, 623 DAY 20
determining locations, 624 DAY 20
bodies
of functions, 28, 90 DAY 2 DAY 5
of loops
executing at least once, 168-170 DAY 7
for, empty, 175 DAY 7
books, source material, 666-669 DAY 21
braces ({}), 21 DAY 2
aligning, 70 DAY 4
coding styles, 661 DAY 21
in nested if statements, 74-76 DAY 4
branching, 67-74 DAY 4
to multiple values, 180-186 DAY 7
break statement, with while loops, 163-165 DAY 7
breakpoints, 638 DAY 20
buffers, 487-489 DAY 16
flushing, 487-489 DAY 16
output, 504 DAY 16
streams, 490 DAY 16
bugs, 616-617 DAY 20
bulletproof programs, 617 DAY 20
buying libraries versus writing routines, 568 DAY 18
bytes, 693 Appendix C
C
C experience, 9 DAY 1
.C file extension, 10, 144 DAY 1 DAY 6
C++ language, history, 4-5, 9 DAY 1
C++-style comments, 23-24 DAY 2
C-style comments, 23 DAY 2
calculations
incrementing/decrementing, 62-64 DAY 4
rectangle areas, 41-42 DAY 3
subtracting large numbers from small numbers, 59-60 DAY 4
call stack, 624 DAY 20
calling base class member functions, 353-355 DAY 12
capability classes (Mixins), 392-393 DAY 13
case sensitivity
coding styles, 663-664 DAY 21
naming classes/member variables/member functions, 126 DAY 6
variables, 39 DAY 3
casting down, 375-376 DAY 13
CAT.CPP program, 146-147 DAY 6
CAT.HPP header file, 146 DAY 6
catch blocks, 619 DAY 20
syntax, 623 DAY 20
catch statements, 624 DAY 20
multiple, 625-627 DAY 20
catching exceptions, 624-627 DAY 20
cerr object, 490 DAY 16
chaining up, 387 DAY 13
char (character) variables, 36-37, 45-47 DAY 3
size, 35 DAY 3
char arrays, 317-319 DAY 11
concatenating, 537-538, 648-649 DAY 17 DAY 21
copying into other strings, 319-321, 645-648 DAY 11 DAY 21
extracting from input, 499-501 DAY 16
filling with cin, 493-495 DAY 16
lengths, determining, 644-645 DAY 21
parsing, 504 DAY 16
substitutions, 537 DAY 17
defining, 526-529 DAY 17
writing to output, 505-506 DAY 16
characters, 35 DAY 3
escape, 46-47 DAY 3
fill, 507-508 DAY 16
ignoring remaining, 501-503 DAY 16
numbers as, 46 DAY 3
single