Thinking in C++, 2nd ed. Volume 2 Revision 4.0 - Index


1 , 2 , 3 , A , B , C , D , E , F , G , H , I , K , L , M , N , O , P , R , S , T , U , V , W , Z


1

1.creational design patterns, 1
2

2.design patterns
structural, 1
3

3.design patterns
behavioral, 1
A

abort( )
Standard C library function, 1
abstraction
in program design, 1
adapting to usage in different countries, Standard C++ localization library, 1
ambiguity
in multiple inheritance, 1
ANSI/ISO C++ committee, 1
applicator, 1
applying a function to a container, 1
arguments
variable argument list, 1
assert( ), 1
atof( ), 1
atoi( ), 1
automatic type conversion
and exception handling, 1
awk, 1
B

bad( ), 1
badbit, 1
bad_alloc, 1
Standard C++ library exception type, 1
bad_cast
and run-time type identification, 1
Standard C++ library exception type, 1
bad_typeid
run-time type identification, 1
Standard C++ library exception type, 1
before( )
run-time type identification, 1
behavioral design patterns, 1
binary
printing, 1
bits
bit vector in the Standard C++ libraries, 1
bit_string
bit vector in the Standard C++ libraries, 1
bloat, preventing template bloat, 1
Booch, Grady, 1
book errors, reporting, 1
bubble sort, 1
buffering, iostream, 1
bytes, reading raw, 1
C

C
basic data types, 1
error handling in C, 1
localtime( ), Standard library, 1
rand( ), Standard library, 1
Standard C, 1
Standard C library function abort( ), 1
Standard C library function strncpy( ), 1
Standard C library function strtok( ), 1
standard I/O library, 1
Standard library macro toupper( ), 1
C++
ANSI/ISO C++ committee, 1
sacred design goals of C++, 1
Standard C++, 1
Standard string class, 1
template, 1
calloc( ), 1
cast
casting away const and/or volatile, 1
dynamic_cast, 1
new cast syntax, 1
run-time type identification, casting to intermediate levels, 1
searching for, 1
catch, 1
catching any exception, 1
chaining, in iostreams, 1
change
vector of change, 1, 2
char* iostreams, 1
character
transforming strings to typed values, 1
class
class hierarchies and exception handling, 1
maintaining library source, 1
most-derived class, 1
nested class, and run-time type identification, 1
Standard C++ string, 1
virtual base classes, 1
wrapping, 1
cleaning up the stack during exception handling, 1
clear( ), 1, 2
command line
interface, 1
committee, ANSI/ISO C++, 1
compile time
error checking, 1
compiler error tests, 1
complex number class, 1
composition
and design patterns, 1
console I/O, 1
const
casting away const and/or volatile, 1
constructor
and exception handling, 1, 2, 3
default constructor, 1
default constructor synthesized by the compiler, 1
failing, 1
order of constructor and destructor calls, 1
private constructor, 1
simulating virtual constructors, 1
virtual base classes with a default constructor, 1
virtual functions inside constructors, 1
const_cast, 1
controlling
template instantiation, 1
conversion
automatic type conversions and exception handling, 1
Coplien, James, 1
couplet, 1
creating
manipulators, 1
creational design patterns, 1
D

data
C data types, 1
database
object-oriented database, 1
datalogger, 1
decimal
dec in iostreams, 1
dec manipulator in iostreams, 1
formatting, 1
default
constructor, 1
default constructor
synthesized by the compiler, 1
delete, 1
overloading array new and delete, 1
deserialization, and persistence, 1
design
abstraction in program design, 1
and efficiency, 1
sacred design goals of C++, 1
design patterns, 1
creational, 1, 2
factory method, 1
observer, 1
prototype, 1, 2
vector of change, 1, 2
visitor, 1
destructor
and exception handling, 1, 2
order of constructor and destructor calls, 1
diamond
in multiple inheritance, 1
dispatching
double dispatching, 1, 2
multiple dispatching, 1
domain_error
Standard C++ library exception type, 1
double dispatching, 1, 2
downcast
type-safe downcast in run-time type identification, 1
dynamic_cast
and exceptions, run-time type identification, 1
difference between dynamic_cast and typeid( ), run-time type identification, 1
run-time type identification, 1
E

effectors, 1
efficiency
design, 1
run-time type identification, 1
ellipses, with exception handling, 1
endl, iostreams, 1, 2
ends, iostreams, 1, 2
enumeration, 1
eof( ), 1
eofbit, 1
errno, 1
error
compile-time checking, 1
error handling in C, 1
handling, iostream, 1
recovery, 1
reporting errors in book, 1
exception handling, 1
asynchronous events, 1
atomic allocations for safety, 1
automatic type conversions, 1
bad_alloc Standard C++ library exception type, 1
bad_cast Standard C++ library exception type, 1
bad_typeid, 1
bad_typeid Standard C++ library exception type, 1
catching any exception, 1
class hierarchies, 1
cleaning up the stack during a throw, 1
constructors, 1, 2
constructors , 1
destructors, 1, 2
domain_error Standard C++ library exception type, 1
dynamic_cast, run-time type identification, 1
ellipses, 1
exception handler, 1
exception hierarchies, 1
exception matching, 1
exception Standard C++ library exception type, 1
invalid_argument Standard C++ library exception type, 1
length_error Standard C++ library exception type, 1
logic_error Standard C++ library exception type, 1
multiple inheritance, 1
naked pointers, 1
object slicing and exception handling, 1, 2
operator new placement syntax, 1
out_of_range Standard C++ library exception type, 1
overflow_error Standard C++ library exception type, 1
overhead, 1
programming guidelines, 1
range_error Standard C++ library exception type, 1
re-throwing an exception, 1
references, 1, 2
run-time type identification, 1
runtime_error Standard C++ library exception type, 1
set_terminate( ), 1
set_unexpected( ), 1
specification, 1
Standard C++ library exception type, 1
Standard C++ library exceptions, 1
standard exception classes, 1
termination vs. resumption, 1
throwing & catching pointers, 1
throwing an exception, 1
typeid( ), 1
typical uses of exceptions, 1
uncaught exceptions, 1
unexpected( ), 1
unexpected, filtering exceptions, 1
extensible, 1
extensible program, 1
extractor, 1
F

factory method, 1
fail( ), 1
failbit, 1, 2
file
iostreams, 1, 2
FILE, stdio, 1
fill
width, precision, iostream, 1
filtering unexpected exceptions, 1
flags, iostreams format, 1
flush, iostreams, 1, 2
format flags, iostreams, 1
formatting
formatting manipulators, iostreams, 1
in-core, 1
iostream internal data, 1
output stream, 1
free( ), 1
freeze( ), 1
freezing a strstream, 1
fseek( ), 1
FSTREAM.H, 1
function
applying a function to a container, 1
function objects, 1
function templates, 1
member function template, 1
pointer to a function, 1
run-time type identification without virtual functions, 1, 2
G

get pointer, 1, 2, 3
get( ), 1, 2
overloaded versions, 1
with streambuf, 1
getline( ), 1, 2, 3
good( ), 1
goto
non-local goto, setjmp( ) and longjmp( ), 1
graphical user interface (GUI), 1
Grey, Jan, 1
GUI
graphical user interface, 1
H

handler, exception, 1
hex, 1
hex (hexadecimal) in iostreams, 1
hex( ), 1
hexadecimal, 1
hierarchy
object-based hierarchy, 1
I

I/O
C standard library, 1
console, 1
ifstream, 1, 2, 3
ignore( ), 1
implementation
limits, 1
in-core formatting, 1
indexOf( ), 1
inheritance
and design patterns, 1
multiple inheritance (MI), 1
multiple inheritance and run-time type identification, 1, 2, 3
templates, 1
input
line at a time, 1
inserter, 1
interface
command-line, 1
graphical user (GUI), 1
repairing an interface with multiple inheritance, 1
interpreter, printf( ) run-time, 1
invalid_argument
Standard C++ library exception type, 1
IOSTREAM.H, 1
iostreams
and Standard C++ library string class, 1
applicator, 1
automatic, 1
bad( ), 1
badbit, 1
binary printing, 1
buffering, 1
clear( ), 1
dec, 1
dec (decimal), 1
effectors, 1
endl, 1
ends, 1
eof( ), 1
eofbit, 1
error handling, 1
fail( ), 1
failbit, 1, 2
files, 1
fill character, 1
fixed, 1
flush, 1, 2
format flags, 1
formatting manipulators, 1
fseek( ), 1
get pointer, 1
get( ), 1
getline( ), 1
good( ), 1
hex, 1
hex (hexadecimal), 1
ignore( ), 1
internal, 1
internal formatting data, 1
ios::app, 1
ios::ate, 1
ios::basefield, 1
ios::beg, 1
ios::cur, 1
ios::dec, 1
ios::end, 1
ios::fill( ), 1
ios::fixed, 1
ios::flags( ), 1
ios::hex, 1
ios::internal, 1
ios::left, 1
ios::oct, 1
ios::out, 1
ios::precision( ), 1
ios::right, 1
ios::scientific, 1
ios::showbase, 1
ios::showpoint, 1
ios::showpos, 1
ios::skipws, 1
ios::stdio, 1, 2
ios::unitbuf, 1
ios::uppercase, 1
ios::width( ), 1
left, 1
manipulators, creating, 1
newline, manipulator for, 1
noshowbase, 1
noshowpoint, 1
noshowpos, 1
noskipws, 1
nouppercase, 1
oct (octal), 1, 2
open modes, 1
precision( ), 1
rdbuf( ), 1
read( ), 1
read( ) and write( ), 1
resetiosflags, 1
right, 1
scientific, 1
seekg( ), 1
seeking in, 1
seekp( ), 1
setbase, 1
setf( ), 1, 2
setfill, 1
setiosflags, 1
setprecision, 1
setw, 1
setw( ), 1
showbase, 1
showpoint, 1
showpos, 1
skipws, 1
tellg( ), 1
tellp( ), 1
unit buffering, 1
uppercase, 1
width, fill and precision, 1
ws, 1
istream, 1
istringstreams, 1
istrstream, 1, 2
iterator, 1
K

keyword
catch, 1
L

Lajoie, Josée, 1
Lee, Meng, 1
length_error
Standard C++ library exception type, 1
library
C standard I/O, 1
maintaining class source, 1
standard template library (STL), 1
limits, implementation, 1
LIMITS.H, 1
line input, 1
localtime( ), 1
logic_error
Standard C++ library exception type, 1
longjmp( ), 1
M

maintaining class library source, 1
malloc( ), 1, 2
manipulator, 1
creating, 1
iostreams formatting, 1
member
member function template, 1
memory
a memory allocation system, 1
MI
multiple inheritance, 1
modes, iostream open, 1
modulus operator, 1
monolithic, 1
multiple dispatching, 1
multiple inheritance, 1
ambiguity, 1
and exception handling, 1
and run-time type identification, 1, 2, 3
and upcasting, 1
avoiding, 1
diamonds, 1
duplicate subobjects, 1
most-derived class, 1
overhead, 1
pitfall, 1
repairing an interface, 1
upcasting, 1
virtual base classes, 1
virtual base classes with a default constructor, 1
N

naked pointers, and exception handling, 1
namespace, 1
new, 1
overloading array new and delete, 1
placement syntax, 1
newline, 1
non-local goto
setjmp( ) and longjmp( ), 1
notifyObservers( ), 1, 2
null references, 1
numerical operations
efficiency using the Standard C++ Numerics library, 1
O

object
object-based hierarchy, 1
object-oriented database, 1
object-oriented programming, 1
slicing, and exception handling, 1, 2
temporary, 1
Observable, 1
observer design pattern, 1
oct, 1
ofstream, 1, 2
open modes, iostreams, 1
operator
>>, 1
<<, 1
modulus, 1
operator overloading sneak preview, 1
[], 1
order
of constructor and destructor calls, 1
ostream, 1, 2
ostringstreams, 1
ostrstream, 1, 2, 3
output
stream formatting, 1
strstreams, 1
out_of_range
Standard C++ library exception type, 1
overflow_error
Standard C++ library exception type, 1
overhead
exception handling, 1
multiple inheritance, 1
overloading
array new and delete , 1
overview, chapters, 1
P

pair template class, 1
Park, Nick, 1
patterns, design patterns, 1
perror( ), 1
persistence, 1
persistent object, 1
pitfalls
in multiple inheritance, 1
pointer
finding exact type of a base pointer, 1
pointer to a function, 1
to member, 1
polymorphism, 1, 2, 3
precision
width, fill, iostream, 1
precision( ), 1
preprocessor
stringizing, 1
printf( ), 1, 2
error code, 1
run-time interpreter, 1
private
constructor, 1
programming, object-oriented, 1
protected, 1
prototype, 1
design pattern, 1
put pointer, 1
R

raise( ), 1
rand( ), 1
RAND_MAX, 1
range_error
Standard C++ library exception type, 1
rapid development, 1
raw, reading bytes, 1
rdbuf( ), 1
re-throwing an exception, 1
read( ), 1, 2
iostream read( ) and write( ), 1
reading raw bytes, 1
realloc( ), 1
reference
and exception handling, 1, 2
and run-time type identification, 1
null references, 1
reinterpret_cast, 1
reporting errors in book, 1
resumption, 1
termination vs. resumption, exception handling, 1
root, 1
RTTI
misuse of RTTI, 1, 2
run-time interpreter for printf( ), 1
run-time type identification, 1, 2, 3
and efficiency, 1
and exception handling, 1
and multiple inheritance, 1, 2, 3
and nested classes, 1
and references, 1
and templates, 1
and upcasting, 1
and void pointers, 1
bad_cast, 1
bad_typeid, 1
before( ), 1
building your own, 1
casting to intermediate levels, 1
difference between dynamic_cast and typeid( ), 1
dynamic_cast, 1
mechanism & overhead, 1
misuse, 1
RTTI, abbreviation for, 1
shape example, 1
type-safe downcast, 1
typeid( ), 1
typeid( ) and built-in types, 1
typeinfo, 1, 2
vendor-defined, 1
VTABLE, 1
when to use it, 1
without virtual functions, 1, 2
runtime_error
Standard C++ library exception type, 1
S

Schwarz, Jerry, 1
sed, 1
seekg( ), 1
seeking in iostreams, 1
seekp( ), 1
serialization, 1
and persistence, 1
set
STL set class example, 1
setChanged( ), 1
setf( ), iostreams, 1, 2
setjmp( ), 1
setw( ), 1
set_new_handler, 1
set_terminate( ), 1
set_unexpected( )
exception handling, 1
shape
example, and run-time type identification, 1
signal( ), 1, 2
simulating virtual constructors, 1
singleton, 1
size
sizeof, 1
slicing
object slicing and exception handling, 1, 2
Smalltalk, 1
sort
bubble sort, 1
specification
exception, 1
standard
Standard C, 1
Standard C++, 1
Standard C++ libraries
algorithms library, 1
bits bit vector, 1
bit_string bit vector, 1
complex number class, 1
containers library, 1
diagnostics library, 1
general utilities library, 1
iterators library, 1
language support, 1
localization library, 1
numerics library, 1
standard exception classes, 1
standard library exception types, 1
standard template library (STL), 1
string class, 1
standard template library
operations on, with algorithms, 1
set class example, 1
static_cast, 1
stdio, 1
STDIO.H, 1
Stepanov, Alexander, 1
STL
standard template library, 1
storage
storage allocation functions for the STL, 1
str( ), strstream, 1
stream, 1
output formatting, 1
streambuf, 1
and get( ), 1
streampos, moving, 1
String
indexOf( ), 1
Standard C++ library string class, 1
transforming character strings to typed values, 1
substring( ), 1
stringizing, preprocessor, 1
strncpy( )
Standard C library function strncpy( ), 1
Stroustrup, Bjarne, 1
strstr( ), 1
strstream, 1, 2
automatic storage allocation, 1
ends, 1
freezing, 1
output, 1
str( ), 1
user-allocated storage, 1
zero terminator, 1
strtok( )
Standard C library function, 1
structural design patterns, 1
subobject
duplicate subobjects in multiple inheritance, 1
substring( ), 1
T

tellg( ), 1
tellp( ), 1
template
and inheritance, 1
and run-time type identification, 1
controlling instantiation, 1
function templates, 1
in C++, 1
member function template, 1
preventing template bloat, 1
requirements of template classes, 1
standard template library (STL), 1
temporary
object, 1
terminate( ), 1
uncaught exceptions, 1
termination
vs. resumption, exception handling, 1
terminator
zero for strstream, 1
throwing an exception, 1
toupper( ), 1
transforming character strings to typed values, 1
try block, 1
tuple-making template function, 1
type
automatic type conversions and exception handling, 1
built-in types and typeid( ), run-time type identification, 1
finding exact type of a base pointer, 1
new cast syntax, 1
run-time type identification (RTTI), 1
type-safe downcast in run-time type identification, 1
typeid( )
and built-in types, run-time type identification, 1
and exceptions, 1
difference between dynamic_cast and typeid( ), run-time type identification, 1
run-time type identification, 1
typeinfo
run-time type identification, 1
structure, 1
TYPEINFO.H, 1
U

ULONG_MAX, 1
uncaught exceptions, 1
unexpected( ), 1
exception handling, 1
unit buffering, iostream, 1
Unix, 1
upcasting
and multiple inheritance, 1, 2
and run-time type identification, 1
Urlocker, Zack, 1
V

value
transforming character strings to typed values, 1
variable
variable argument list, 1
vector of change, 1, 2, 3
vendor-defined run-time type identification, 1
virtual
run-time type identification without virtual functions, 1, 2
simulating virtual constructors, 1
virtual base classes, 1
virtual base classes with a default constructor, 1
virtual functions inside constructors, 1
visitor pattern, 1
void
void pointers and run-time type identification, 1
volatile
casting away const and/or volatile, 1
VPTR, 1, 2
VTABLE, 1
and run-time type identification, 1
W

wrapping, class, 1
write( ), 1
iostream read( ) and write( ), 1
ws, 1
Z

zero terminator, strstream, 1