assignment operators, 772–775
base classes, 708–710, 718–720
constructors, 713–715
derived classes, 711–712, 716–720
exceptions, 922–927
has-a relationships, 721
is-a relationships, 720–722, 772
multiple, 814, 826
what’s not inherited, 772
ios, 1065
iostream, 1065
ios_base, 1065
constants representing bit values, 1085
istream, 47, 1065
data types recognized, 1093–1095
input methods, 1109–1114
single-character input, 1102–1106
string input, 1106–1108
member functions
const member functions, 537
const objects, 662–665
constructors, 524–528, 538–539, 638–639, 659–661, 677–678
copy constructors, 639–644
definitions, 509, 514–516, 523
destructors, 528–529, 538–539
friend member functions, 883–886, 888–889
implicit member functions, 637–638
inline functions, 517–518
invoking, 523
non-const objects, 663
object membership, 518
objects, returning, 662–665
private, 513
properties, 777–778
public, 513
qualified names, 514
this pointer, 539–546
unqualified names, 514
member in-class initialization, 1160
nested classes, 682, 889–891
access control, 892
scope, 891–892
templates, 892–896
objects, 786–788
contained objects, 791–795
subobjects, 797
ofstream, 1115–1119
ostream, 47, 1065
ostringstream, 1142, 1144–1145
pointers, member dereferencing operators, 1242–1246
private inheritance
base-class components, initializing, 798–799
base-class friends, accessing, 801–802, 804
base-class methods, accessing, 800–801
base-class objects, accessing, 801
Student class example, 798
protected classes, 745–746, 775
Queue
class declaration, 691–694
design, 679
implementation, 680–682
methods, 682–690
public interface, 679–680
Sales
sales.cpp, 924
sales.h, 922
use_sales.cpp, 925–927
sample program, 518–520
special member functions, 1178–1179
Stack, 831–836
pointers, 837–843
static class members, 628–637
stdexcept exception classes, 918–920
Stock, 511
streambuf, 1065
string, 131–133, 353–354, 647, 952, 960, 965–966, 1333
appending, 133–134
assignment, 133–134
assignment operator, overloading, 652–658
automatic sizing, 966–967
bracket notation, 649–651
comparing, 960
comparison members, 648–649
complex operations, 135–136
concatenation, 133–134
constructors, 952–956
default constructor, 647–648
finding size of, 960
Hangman sample program, 962–965
input, 957–960
reading line by line, 136–140
searching, 960–961
static class member functions, 651–652
STL interface, 1038–1039
string comparisons, 223–224
structures, 144–145
StringBad, 628
constructors, 632–633
destructor, 633
strngbad.cpp, 630–631
strngbad.h, 628–629
vegnews.cpp sample program, 633–637
Student
contained objects interfaces, 792–795
contained objects, initializing, 791
design, 787–788
methods, 793–795
private inheritance, 798–805
sample program, 795–797
studentc.h, 789–790
TableTennisPlayer, 708
tabtenn0.cpp, 709
tabtenn0.h, 708
usett0.cpp, 710
this pointer, 539–546
Tv, 878–879, 883
tv.cpp, 880–882
tv.h, 879–880
tvfm.h, 885–886
use_tv.cpp, 882
type casts, 606–612
type conversions, 606–612
applying automatically, 616–618
conversion functions, 612–616
friends, 618–621
implicit conversion, 609
type info, 939–944
valarray, 786–787, 1045–1046, 1049–1051
vector, 120, 588–590, 600, 979–991, 1045–1046, 1049–1051
adding elements to, 982–983
adding vectors, 590
declaring, 591–592
displacement vectors, 589
implementation comments, 602
member functions, 592, 597
multiple representations, 599
overloaded arithmetic operators, 599–600
overloading overloaded operators, 601
past-the-end iterators, 981–982
Random Walk sample program, 602, 605–606
removing ranges of, 982
shuffling elements in, 987
sorting, 987
state members, 597–599
vect1.cpp example, 980–981
vect2.cpp sample program, 984–986
vect3.cpp sample program, 988–991
vector template class, 186–187
virtual methods
final, 1183–1184
override, 1183–1184
Worker, 810–814
classic C, 17
classifying data types, 97
clear() method, 1258, 1278, 1283
clear() stream state method, 1098–1102
clearing bits, 1086
client files, creating, 533–536
client/server model, 520
climits header file, 71–73
clock() function, 229
clog object, 1067
close() method, 292
code formatting, 39
source code style, 40
tokens, 39
white space, 39
code listings
acctabc.cpp, 751
acctabc.h, 750
addpntrs.cpp, 167
address.cpp, 154
align.cpp, 1246
and.cpp, 263–264
append.cpp, 1125
arith.cpp, 98
arraynew.cpp, 166
arrayone.cpp, 117
arraytp.h, 843–844
arrfun1.cpp, 321
arrfun2.cpp, 323
arrfun3.cpp, 328, 332
arrstruc.cpp, 147–148
assgn st.cpp, 145
auto.cpp, 456–457
bank.cpp, 695–697
bigstep.cpp, 205
binary.cpp, 1131
block.cpp, 212
bondini.cpp, 86
brass.cpp, 727
brass.h, 724
callable.cpp, 1192
calling.cpp, 306
carrots.cpp, 41
cctypes.cpp, 271–272
chartype.cpp, 81
check_it.cpp, 1096
choices.cpp, 188
cinexcp.cpp, 1099
cinfish.cpp, 283–284
cingolf.cpp, 285–286
compstr1.cpp, 221
compstr2.cpp, 223
condit.cpp, 273
constcast.cpp, 944
conversion functions, stone1.cpp, 616
convert.cpp, 57
coordin.h, 449–450