compile time, 155
compile time complexity, 1009–1010
compilers, 21
CC (UNIX), 21–22
definition of, 11
g++ (Linux), 22
gpp, 22
troubleshooting, 24
Windows, 23–24
compiling files separately, 447–449, 453
complex class template, 1045
composition, 785
compound statements (blocks), 212–214
compound types, 115–116
enumerations, 150–152
enumerators, 150–151
value ranges, 153
values, setting, 152
pointers, 153
assigning values to, 171
C++ philosophy, 155
cautions, 159
compared to pointed-to values, 172
declaring, 155–159, 171
deferencing, 171–172
delete operator, 163–164
example, 154
initializing, 157–159
integers, 160
new operator, 160–162
pointer arithmetic, 167–172
pointer notation, 173
pointers to objects, 665–670
strings, 173–178
structures, 140–142
arrays, 147–148
assignment, 145–146
bit fields, 148
dynamic structures, 178–180
example, 142–144
members, 141
string class members, 144–145
unions, 149
anonymous unions, 150
declaring, 149
compstr1.cpp, 221
compstr2.cpp, 223
concatenating strings, 122, 128, 1266
concatenating output, 46–47
concatenation
output, 1071–1072
string class, 133–134
concatenation operator (+), strings, 133–134
concepts
containers, 1007
container methods compared to functions, 1039–1041
properties, 1008–1010
sequence requirements, 1011–1012
functors, 1027–1030
iterators, models, 1000–1001
concurrent programming, 1202–1203
condit.cpp, 273
conditional operator (?::), 273–274
const, reference returns, 400
const keyword, 90–92, 473–474, 771–772
arrays, 327–328
pointers, 334–336
reference variables, 401
temporary variables, 392–394
const member functions, 537
const modifier as alternative to #define, 1327–1329
const objects, returning references to, 662–665
constant time, 1009
constant time complexity, 1009–1010
constants, 78–80.
char constants.
const keyword, 90–92
file modes, 1122–1123
floating-point constants, 96
representing bit values, 1085
size_type, 1251
symbolic constants, 72
symbolic names, 90–92
constcast.cpp, 944
constructors, 524, 742, 768
calling, 526–527
class, 524
conversion, 769–770
copy constructors, 639, 767
deep copying, 642–644
limitations, 640–642
shallow copying, 640
when to use, 639–640
declaring, 525–526
default constructors, 527–528, 638–639, 766–767
defining, 525–526
delegating, 1180–1181
inheritance, 713–715
initialization list, C++11, 1258
new operator, 659–661, 677–678
Rvalue reference, C++11, 1256
string class, 1253
constructors that use arrays, 1254
constructors that use n copies of character, 1257
constructors that use parts of arrays, 1254–1255
constructors that use ranges, 1257
copy constructors, 1255–1256
default constructors, 1254
String(), 647–648, 952–956
virtual base classes, 817–818
const_cast operator, 944
const_iterator type, 1273
const_reference type, 1273
contained objects
compared to private inheritance, 806
initializing, 791
interfaces, 792–795
container classes, 830
container concepts, 1007
container methods compared to functions, 1039–1041
properties, 1008–1010
sequence requirements, 1011–1012
container methods, compared to functions, 1039–1041
container requirements, C++11, 1010
container types
deque, 1013
list, 1014–1017
member functions, 1014–1016
priority_queue, 1017–1018
queue, 1017
stack, 1018
vector, 1012–1013
containers, 553
associative, 1018, 1026
multimap, 1023–1025
set, 1019–1022
C++11, unordered associative containers, 1283
deques, methods, 1278–1280
lists, methods, 1278–1280
maps, methods, 1281–1284
methods, 1275–1277
sets, methods, 1281–1284
stacks, 557
STL (Standard Template Library), 1161
C++11, 1271–1273
vectors, methods, 1278–1280
containment, 785
continue statement, 280–282
conversion constructors, 769–770
conversion operators, explicity, 1159–1160
convert.cpp, 57
converting
class type, 677
rectangular coordinates to polar coordinates, 348–351
to standard C++, 1327
autoptr template, 1333
C++ features, 1331
const instead of #define, 1327–1329
function prototypes, 1330
header files, 1331