combining with nonvirtual base classes, 828
constructors, 817–818
dominance, 828–829
methods, 818–828
base-class functions, 777
begin() method, 981–984, 1251–1252, 1275
best matches, 432–434
bidirectional iterators, 998
Big Endian, 1218
bigstep.cpp, 205
binary files, 1127–1133
binary functions, 1027–1030
binary numbers, 1217
hexadecimal equivalents, 1217–1218
binary operators, 601, 1234
binary predicates, 1027, 1030
binary search operations
binary_search() function, 1304, 1310
equal_range() function, 1304, 1309
lower_bound() function, 1304, 1309
upper_bound() function, 1304, 1309
binary searching
binary_search() function, 1304, 1310
equal_range() function, 1304, 1309
lower_bound() function, 1304, 1309
upper_bound() function, 1304, 1309
binary.cpp, 1131
binary_search() function, 1304, 1310
binding
dynamic binding, 173, 737, 739–740
static binding, 172, 737, 740
bit fields, 148
bit values, represented by constants, 1085
bitmask data type, 1085
bits, 68–69
clearing, 1086
testing, 1241–1242
toggling, 1241
turning off, 1241
turning on, 1241
bitwise AND operator (&), 1239–1240
bitwise negation operator (~), 1237
bitwise operators, 1235
alternative representations, 1240
logical bitwise operators, 1237–1240
shift operators, 1235–1237
overloading, 581–587
testing bit values, 1241–1242
toggling, 1241
turning bits off, 1241
turning bits on, 1241
bitwise OR operator (|), 1237–1238
bitwise XOR operator (^), 1238
block scope, 454
block.cpp, 212
blocks, 212–214
body (function), 29
for loops, 196–197
bondini.cpp, 86
books, 1323–1324
bool data type, 90
boolalpha manipulator, 1090
Boost project, 1205–1207
bottom-up programming, 13, 331
bound template friend functions, 861–864
braces {}, 258
bracket notation, 649–651
brackets, angle brackets, 1162
branching statements
if, 254
bug prevention, 260
example, 255
syntax, 254
if else
example, 256–257
formatting, 257–258
if else if else construction, 258–260
syntax, 255
switch, 274
enumerators as labels, 278–280
example, 275–278
syntax, 275
Brass class
class declaration, 723–727, 730–733
virtual destructors, 737
virtual method behavior, 734–736
brass.cpp, 727
brass.h, 724
BrassPlus class
class declaration, 723–726
class implementation, 727, 730–731
class objects, 732–733
virtual destructors, 737
virtual method behavior, 734–736
break statement, 280–282
bucks() function, 53
buffers, 1063–1064, 1067
flushing, 1063
Build All option (compiler), 24
buildstr() function, 341
buy() function, 516
bytes, 69
C
C language
ANSI C, 17
classic C, 17
development history, 11
programming philosophy, 11–13
C++, Macintosh, 25
C++ FAQ Lite, 1325
C++11
arrays, initializing, 120
auto declarations, 109
basic assignments, 1260
constructors
initialization list, 1258
Rvalue reference, 1256
container requirements, 1010
containers, unordered associative containers, 1283
exception specifications, 908
initializer_list template, 1051–1053
libraries, 1203
list initialization, 537
noexcept, 1248
range-based loops, 233–234
scoped enumerations, 551–552
STL, 1271
containers, 1271–1273
structure initialization, 144
template aliases, 866
C-style strings, 120–122
in arrays, 123–124
combining with numeric input, 130–131
concatenating, 122
empty lines, 130
failbits, 130
null characters, 121
passing as arguments, 339–341
pointers, 173–178
returning from functions, 341–343
string input, entering, 124–126
string input, reading with get(), 127–130
string input, reading with getline( ), 126–127
C-style strings, comparing, 220–223
call signatures, 1194
calling