class member functions, 523
constructors, 526–527
functions, 309–311
pointers, 363–364
calling functions, 30, 49
calling.cpp, 306
callme1() function, 636
callme2() function, 636
capacity() method, 966, 1251, 1279
caret (^), 1238
carrots.cpp, 41
case sensitivity, 27, 32
casting, 1330–1331
downcasting, 738
upcasting, 738
implicit upcasting, 807
casting data types, 606–610, 612
casting types, 107–109
catch keyword, 900
catching exceptions, 900, 916–917
CC compiler (UNIX), 21–22
cctype library, 270–273
cctypes.cpp, 271–272
cerr object, 1067
cfront translator, 21
char data type, 80–87, 1064
escape sequences, 84–87
signed char, 88–89
universal character names, 87–88
unsigned char, 88–89
wchar_t, 89
character strings, 36
characters
ASCII character set, table of, 1225–1229
fill, 1081–1082
chartype.cpp, 81
CHAR_BIT constant, 72
CHAR_MAX constant, 72
char_type type, 1250
check_it.cpp, 1096
cheers() function, 307–309
choices.cpp, 188
choosing integer types, 76–77
cin, cin.get() function, 235–237, 241–244
cin object, 1067, 1093–1095
get() function, 128–130
getline() function, 126–127
loops, 234–235
operator overloading, 1095–1097
stream states, 1097–1098
effects, 1100–1102
exceptions, 1099–1100
setting, 1098
cin statement, 46
cin.get() function, 235–237, 241–244, 317
cin.get() member function, 1103–1105
cin.get(ch) function, 317
cinexcp.cpp, 1099
cinfish.cpp, 283–284
cingolf.cpp, 285–286
class declaration, 511–513
class inheritance, 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, 804–805
class keyword, 831
class member functions, operator overloading, 587–588
class scope, 454, 514, 549–551
class templates, 830–837
arrays, non-type arguments, 843–845
complex, 1045
explicit instantiations, 850
explicit specializations, 850–851
friend classes, 858
bound template friend functions, 861–864
non-template friend functions, 858–861
unbound template friend functions, 864–865
implicit instantiations, 850
member templates, 854–855
parameters, 855–858
partial specializations, 851–852
pointers, stacks of pointers, 837–843
versatility, 845–846
default type parameters, 849
multiple type parameters, 847
recursive use, 846–847
classes, 47–48, 508, 520, 1159
ABCs (abstract base classes), 746–749
ABC philosophy, 756
AcctABC example, 749–751, 754–755
enforcing interface rules with, 757
abstraction, 507
access control, 511–513
AcctABC, 749–751, 754–755
ADTs (abstract data types), 552–557
array template class, 187
ArrayDb, 791
auto_ptr, 969, 973–975
bad_alloc, 921
base classes
components, initializing, 798–799
friends, accessing, 801–804
methods, accessing, 800–801
objects, accessing, 801
using declarations, 807–808
virtual base classes, 815–829
Brass
class declaration, 723–726
class implementation, 727, 730–731
class objects, 732–733
virtual destructors, 737
virtual method behavior, 734–736
BrassPlus
class declaration, 723–726
class implementation, 727, 730–731
class objects, 732–733
virtual destructors, 737
virtual method behavior, 734–736
class scope, 549–551
client files, 533–536
compared to structures, 514
constructors, 524, 538–539, 768
calling, 526–527
conversion, 769–770
copy constructors, 639–644, 767
declaring, 525–526
default constructors, 527–528, 638–639, 766–767
defining, 525–526
delegating, 1180–1181
inheriting, 1181–1183
new operator, 659–661, 677–678
converting class type, 677
Customer, 690–691, 694
data hiding, 511–513, 523
data types, 507–508
declarations, 509–511, 522
defaulted and deleted methods, 1179–1180
defined, 36, 47, 508
defining, 47
definition of, 13
derived classes, 405
destructors, 524, 528–529, 538–539, 768
encapsulation, 512, 523
exception, 917
explicit conversion operators, 1159–1160
friend classes, 578–580, 877, 880–883, 886–888
compared to class member functions, 886
templates, 858–865
Tv class example, 878–883
header files, 530
ifstream, 1116–1119
implementation files, 530
inheritance