is-a relationships, 720–722, 772
multiple inheritance, 798, 808–830
virtual base classes, 815–829
Worker class example, 810–814
polymorphic public inheritance, 722–723
base-class functions, 777
Brass class declaration, 723–726
Brass class implementation, 727–731
Brass class objects, 732–733
BrassPlus class declaration, 723–726
BrassPlus class implementation, 727–731
BrassPlus class objects, 732–733
constructors, 742
dynamic binding, 737–740
pointer compatibility, 737–739
reference type compatibility, 737–739
static binding, 737–740
virtual destructors, 737, 742–743, 776
virtual functions, 734–736, 739–745, 775–776
private inheritance, 797
base-class components, initializing, 798–799
base-class friends, accessing, 801–804
base-class methods, accessing, 800–801
base-class objects, accessing, 801
compared to containment, 806
Student class example, 798–805
protected classes, 745–746, 775
protected inheritance, 806–807
public, 806
multiple, 826
what’s not inherited, 772
inheriting
constructors, 1181–1183
delegating, 1181–1183
initialization, 70
arrays, 117–120
arrays of objects, 546
automatic variables, 458
base-class components, 798–799
contained objects, 791
for loops, 196–197
pointers, 157–159
reference variables, 385
strings, 121
two-dimensional arrays, 246–249
initialization lists, 119
constructors, C++11, 1258
initializer_list, 1053–1054
uniform initialization, 1155
initializer_list template, C++11, 1051–1053
initializing
arrays, C++11, 120
variables, 52, 73
init_ptr.cpp, 158
inline functions, 379, 517–518
compared to macros, 382
square(), 381–382
inline modifier as alternative to #define, 1329–1330
inline qualifier, 517
inline.cpp, 381
inner_product() function, 1320–1321
inplace_merge() function, 1305, 1311
input, 46
cin object, 1093–1095
operator overloading, 1095–1097
stream states, 1097–1102
cin statement, 46
classes, string, 957–960
istream class, methods, 1109–1114
single-character, 1102–1106
strings, 1106–1108
input functions
formatted, 1094
unformatted, 1102
input iterators, 997–998
input/output, strings, 287, 1269–1270
insert iterators, 1005–1007
insert() method, 983–984, 1015–1016, 1267, 1277, 1282
inserting strings, 1267
inserts.cpp, 1006
instances, 511
instantiation, 832–836
instantiation
explicit, 428–430, 850
implicit, 428–430, 850
instr1.cpp, 125
instr2.cpp, 127
instr3.cpp, 129
int data type, 68–70
int main() function header, 30–31
integer values, displaying with cout, 44–45
integers, 68
bool, 90
char, 80–87
escape sequences, 84–87
signed char, 88–89
universal character names, 87–88
unsigned char, 88–89
wchar_t, 89
choosing integer types, 76–77
climits header file, 71–73
constants, 78–80
const keyword, 90–92
symbolic names, 90–92
initializing, 73
int, 68–70
long, 68–70
pointers, 160
short, 68–70
sizeof operator, 71–73
unsigned, 74–76
width of, 68
integrated development environments, 19
interfaces
contained objects, 792–795
defined, 509–510
public interfaces, 509
internal linkage, 454
internal manipulator, 1091
internal variables, 467–470
International Standards Organization (ISO), C++ standard, 16
Internet resources, 1325
INT_MAX constant, 72
INT_MIN constant, 72
invalid_argument exception, 919
invoking, 526
iomanip.cpp, 1092
ios class, 1065
iostream class, 1065
iostream file, 33–34, 1064, 1067
iostream header file, 289
ios_base class, 1065
constants representing bit values, 1085
is-a relationships, 720–722, 772, 808
isalnum() function, 272
isalpha() function, 272
isblank() function, 272
iscntrl() function, 272
isdigit() function, 272
isempty() function, 685
isfull() function, 685
isgraph() function, 272
islower() function, 272
ISO (International Standards Organization), C++ standard, 16