Index
, #
, $
, %
, &
, >
, <
, (
, *
, +
, -
, .
, /
, :
, =
, A
, B
, C
, D
, E
, F
, G
, H
, I
, J
, K
, L
, M
, N
, O
, P
, Q
, R
, S
, T
, U
, V
, W
, X
, Z
, [
, ^
, |
, ~
!, 1
!=, 1
#, preprocessor stringize operator, 1
#define, 1, 2, 3, 4
#endif, 1, 2
#ifdef, 1, 2
#ifndef, 1
#include , 1
#undef, 1
$<, in makefiles, 1
%, 1
&, 1, 2
&&, logical and, 1, 2
&, bitwise and, 1
&= bitwise, 1
>, 1
- >>, 1
- iostreams
- operator, 1
overloading, 1>>=, 1
>=, 1
<, 1
- <<, 1
- overloading for iostreams, 1
<<=, 1
<=, 1
( ), overloading the function call operator, 1
- *, 1
- overloaded operator, 1, 2
pointer dereference, 1
- +, 1, 2
- with pointers, 1
- ++, 1
- with pointers, 1
-, 1, 2
- ->
- overloading the smart pointer operator, 1
struct member selection via pointer, 1->*, overloading, 1
-, with pointers, 1
--, 1
--, with pointers, 1
. member selection operator, 1
- ... variable argument list, 1
- varargs, 1
/, 1
: ternary if-else, 1
- ::, 1, 2
- scope resolution operator, and namespaces, 1
- =, 1
- operator
- as a private function, 1
automatic creation, 1 operator, as a private function, 1
overloading, 1==, 1, 2
abort( ), 1
- abstract
- base classes and pure virtual functions, 1
data type, 1, 2abstraction, 1
- access
- control, 1
- run-time, 1
function, 1
- specifiers, 1, 2
- and object layout, 1
order for, 1accessors, 1
actor, in use cases, 1
addition (+), 1
- address
- const, 1
each object must have a unique address, 1
element, 1
function, 1, 2
memory, 1
object, 1
pass as const references, 1
passing and returning with const, 1
struct object, 1address-of (&), 1
- aggregate, 1
- const aggregates, 1
- initialization, 1, 2
- and structures, 1
aggregation, 1
algorithms, Standard C++ Library, 1
- aliasing
- namespace, 1
solving with reference counting and copy-on-write, 1Allison, Chuck, 1, 2, 3
- allocation
- dynamic memory allocation, 1, 2
memory, and efficiency, 1
storage, 1alternate linkage specification, 1
- ambiguity, 1
- during automatic type conversion, 1
with namespaces, 1- analysis
- and design, object-oriented, 1
paralysis, 1
requirements analysis, 1- and
- & bitwise, 1, 2
&& logical, 1, 2
&& logical and, 1and_eq, &= (bitwise and-assignment), 1
anonymous union, 1
ANSI Standard C++, 1
argc, 1
- arguments
- argument-passing guidelines, 1
command line, 1, 2
const, 1
constructor, 1
- default, 1, 2, 3
- argument as a flag, 1
destructor, 1
empty argument list, C vs. C++, 1
function, 1, 2
indeterminate list, 1
macro, 1
mnemonic names , 1
name decoration, 1
overloading vs. default arguments, 1
passing, 1
placeholder, 1
preferred approach to argument passing, 1
references, 1
return values, operator overloading, 1
trailing and defaults, 1
unnamed, 1
variable argument list, 1, 2
without identifiers, 1argv, 1
arithmetic, pointer, 1
- array, 1
- automatic counting, 1
bounds-checked, using templates, 1
calculating size, 1
definition, limitations, 1
indexing, overloaded operator [], 1
initializing to zero, 1
inside a class, 1
making a pointer look like an array, 1
new & delete, 1
of pointers, 1
of pointers to functions , 1
off-by-one error, 1
overloading new and delete for arrays, 1
pointers and, 1
static, 1
static initialization, 1asctime( ), 1
- assembly-language
- asm in-line assembly-language keyword, 1
CALL, 1
code for a function call, 1
code generated by a virtual function, 1
RETURN, 1- assert( )
- macro in Standard C, 1
- assert( )
- macro in Standard C, 1, 2
- assignment, 1, 2
- disallowing, 1
memberwise, 1, 2
operator, 1
overloading, 1
pointer, const and non-const, 1
self-assignment in operator overloading, 1- assure( ), 1
- from require.h, 1
atexit( ), 1
atof( ), 1, 2
atoi( ), 1
atol( ), 1
auto keyword, 1, 2
auto-decrement operator, 1
auto-increment operator, 1, 2
- automatic
- counting, and arrays, 1
creation of operator=, 1
destructor calls, 1
- type conversion, 1, 2
- pitfalls, 1
preventing with the keyword explicit, 1variable, 1, 2, 3
backslash, 1
backspace, 1
bad_alloc, 1
- base
- abstract base classes and pure virtual functions, 1
base-class interface, 1
fragile base-class problem, 1
types, 1
virtual keyword in derived-class declarations, 1basic concepts of object-oriented programming (OOP), 1
BASIC language, 1, 2
Beck, Kent, 1
behavior, 1
- binary operators, 1
- examples of all overloaded, 1
overloaded, 1- binding
- dynamic binding, 1
early, 1, 2
function call binding, 1, 2
late, 1, 2
run-time binding, 1bit bucket, 1
bit-shifting, 1
bitand, & (bitwise and), 1
bitcopy, 1
bitcopy, vs. initialization, 1
bitor, | (bitwise or), 1
- bitwise
- and operator &, 1, 2
const, 1
exclusive-or, xor ^, 1
explicit bitwise and logical operators, 1
not ~, 1
operators, 1
or operator |, 1, 2bloat, code, 1
- block
- access, 1
and storage allocation, 1
definition, 1Booch, Grady, 1
- book
- design & production, 1
errors, reporting, 1bool, 1, 2
- Boolean, 1, 2, 3
- algebra, 1
and floating point, 1
bool, true and false, 1bounds-checked array, with templates, 1
break, keyword, 1
bucket, bit, 1
- bugs
- common pitfalls with operators, 1
finding, 1
from casts, 1
with temporaries, 1- built-in type, 1
- basic, 1
initializer for a static variable , 1
- pseudoconstructor
- calls for, 1
form for built-in types, 1byte, 1
- C, 1
- #define, 1
backward compatibility, 1
C programmers learning C++, 1
C++ compatibility, 1
compiling with C++, 1
concepts, 1
const, 1
converting from C to C++, 1, 2
difference with C++ when defining variables, 1
empty argument list, C vs. C++, 1
finding problems in old code, 1
function library, 1
fundamentals, 1
heap, 1
hole in the type system, via void*, 1
ISO Standard C, 1
libraries, 1, 2
linkage, 1
linking compiled C code with C++, 1
name collisions, 1
operators and their use, 1
passing and returning variables by value, 1
pitfalls, 1
preprocessor, 1
safety hole during linking, 1
- Standard library function
- abort( ), 1
atexit( ), 1
exit( ), 1 Thinking in C CD ROM, 1- C++
- automatic typedef for struct and class, 1
C compatibility, 1
C programmers learning C++, 1
cfront, original C++ compiler, 1
compiling C, 1
converting from C to C++, 1, 2
data, 1
difference with C when defining variables, 1
efficiency, 1
empty argument list, C vs. C++, 1
explicit casts, 1
finding C errors by recompiling in C++, 1
first program, 1
GNU Compiler, 1
hybrid object-oriented language, and friend, 1
implicit structure address passing, 1
linking compiled C code with C++, 1
major language features, 1
meaning of the language name, 1
object-based C++, 1
one definition rule, 1
operators and their use, 1
programming guidelines, 1
Standard C++, 1
Standards Committee, 1
strategies for transition to, 1
stricter type checking, 1
strongly typed language, 1
why it succeeds, 1c-v qualifier, 1
calculating array size, 1
CALL, assembly-language, 1
calling a member function for an object , 1
calloc( ), 1, 2, 3
Carolan, John, 1
Carroll, Lewis, 1
case, 1
cassert standard header file, 1
- cast, 1, 2, 3, 4, 5, 6
- C++ explicit casts, 1
casting away constness, 1
casting void pointers, 1
const_cast, 1
explicit cast for upcasting, 1
explicit keyword, 1
operators, 1
pointer assignment, 1
reinterpret cast, 1
static_cast, 1cat, Cheshire, 1
catch clauses, 1
- CD ROM
- seminars on CD-ROM from MindView, 1
Thinking in C, Foundations for Java & C++ (packaged with book), 1, 2, 3cfront, original C++ compiler, 1
chapter overviews, 1
- char, 1, 2, 3
- sizeof, 1
- character, 1
- array literals, 1
character array concatenation, 1
constants, 1characteristics, 1
check for self-assignment in operator overloading, 1
Cheshire cat, 1
cin, 1
clashes, name, 1
- class, 1, 2, 3
- abstract base classes and pure virtual functions, 1
adding new virtual functions in the derived class, 1
aggregate initialization, 1
class definition and inline functions, 1
compile-time constants inside, 1, 2, 3
composition, and copy-constructor, 1
const and enum in, 1
container class templates and virtual functions, 1
creators, 1
- declaration, 1
- of a nested friend class, 1
defining the interface, 1
definition, 1
difference between a union and a class, 1
duplicate class definitions and templates, 1
fragile base-class problem, 1
generated by macro, 1
generated classes for templates, 1
handle class, 1
- inheritance
- and copy-constructor, 1
diagrams, 1 initialization, memberwise, 1
instance of, 1
keyword, 1
local, 1
- nested, 1
- iterator, 1, 2
overloading new and delete for a class, 1
pointers in, and overloading operator=, 1
static class objects inside functions, 1
static data members, 1
static member functions, 1
templates, 1
using const with, 1class-responsibility-collaboration (CRC) cards, 1
- cleanup, 1, 2
- automatic destructor calls with inheritance and composition, 1
initialization and cleanup on the heap, 1client programmer, 1, 2
- code
- source availability, 1
table-driven, 1
assembly for a function call, 1
bloat, 1
comment tags in listings, 1
consulting, mentoring, and design and code walkthroughs from MindView, 1
generator, 1
- organization, 1
- header files, 1
program structure when writing code, 1
re-use, 1collection, 1, 2
collector, garbage, 1
collision, linker, 1
comma operator, 1, 2
- command line, 1
- arguments, 1
- comment tag
- for linking, 1
in source-code listings, 1comments, makefile, 1
committee, C++ Standards, 1
common interface, 1
compaction, heap, 1
- compatibility
- C & C++, 1
with C, 1- compilation
- needless, 1
process, 1
separate, 1
separate, and make, 1compile time constants, 1
- compiler, 1, 2
- creating default constructor, 1
original C++ compiler cfront, 1
running, 1
support, 1compiling C with C++, 1
compl, ~ ones complement, 1
- complicated
- declarations & definitions, 1
expressions, and operator overloading, 1- composite
- array, 1
type creation, 1- composition, 1, 2, 3
- combining composition & inheritance, 1
copy-constructor, 1
member object initialization, 1
vs. inheritance, 1, 2, 3concatenation, character array, 1
concept, high, 1
conditional operator, 1
conditional, in for loop, 1
- const, 1, 2
- address of, 1
aggregates, 1
casting away, 1
character array literals, 1
compile-time constants in classes, 1
const reference function arguments, 1
correctness, 1
enum in classes, 1
evaluation point of, 1
extern, 1
function arguments and return values, 1
in C, 1
initializing data members, 1
logical, 1
- member function, 1
- and objects, 1
mutable, 1
pass addresses as const references, 1
pointer to const, 1
pointers, 1
- reference, 1, 2
- and operator overloading, 1
- return by value as const, 1
- and operator overloading, 1
safety, 1
temporaries are automatically const, 1- constant, 1
- character, 1
- compile-time, 1
- inside classes, 1
folding, 1, 2
named, 1
templates, constants in, 1
values, 1- constructor, 1, 2, 3, 4
- arguments, 1
automatic type conversion, 1
behavior of virtual functions inside constructors, 1
- copy-constructor, 1, 2, 3, 4, 5
- alternatives to, 1
vs. operator=, 1 creating a new object from an existing object, 1
- default, 1, 2, 3, 4, 5
- inheritance, 1
synthesized by the compiler, 1 doesn’t automatically inherit, 1
efficiency, 1
global object, 1
initialization and cleanup on the heap, 1
- initializer list, 1, 2, 3
- pseudoconstructors, 1
inline, 1
installing the VPTR, 1
memberwise initialization, 1
name, 1
new operator, memory exhaustion, 1
order of construction with inheritance, 1
- order of constructor calls, 1
- and destructor calls, 1
overloading, 1, 2
private, 1
pseudo-constructor, 1
return value, 1
tracking creations and destructions, 1
virtual functions & constructors, 1const_cast, 1
consulting, mentoring, and design and code walkthroughs from MindView, 1
- container, 1, 2
- container class templates and virtual functions, 1
delete, 1
iterators, 1
new, delete, and containers, 1
ownership, 1, 2, 3
polymorphism , 1
Standard C++ Library, 1
vector, 1context, and overloading, 1
continuation, namespace, 1
continue, keyword, 1
- control
- access, 1, 2
- run-time, 1
access specifiers, 1
expression, used with a for loop, 1- controlling
- execution, 1
linkage, 1- conversion
- automatic type conversion, 1
narrowing conversions, 1
pitfalls in automatic type conversion, 1
preventing automatic type conversion with the keyword explicit, 1
to numbers from char*, 1converting from C to C++, 1, 2
- copy-constructor, 1, 2, 3, 4, 5, 6, 7
- alternatives, 1
composition, 1
default, 1
inheritance, 1
private, 1, 2
upcasting and the copy-constructor, 1
vs. operator=, 1copy-on-write (COW), 1
copying pointers inside classes, 1
copyright notice, source code, 1
correctness, const, 1
costs, startup, 1
- counting
- automatic, and arrays, 1
reference, 1cout, 1, 2
cover design, book, 1
CRC, class-responsibility-collaboration cards, 1
- creating
- functions in C and C++, 1
new object from an existing object, 1
objects on the heap, 1crisis, software, 1
cstdlib standard header file, 1
cstring standard header file, 1
- data
- defining storage for static members, 1
initializing const members, 1
static area, 1
static members inside a class, 1- data type
- abstract, 1, 2
built-in, 1
equivalence to class, 1
user-defined, 1- debugging, 1
- assert() macro, 1
flags, 1
preprocessor flags, 1
require.h, 1
run-time, 1
using the preprocessor, 1decimal, 1
- declaration, 1, 2
- all possible combinations, 1
analyzing complex, 1
and definition, 1
- class, 1
- nested friend, 1
const, 1
forward, 1
- function, 1, 2, 3
- declaration syntax, 1
not essential in C, 1 header files, 1, 2
structure, 1
using, for namespaces, 1
- variable
- declaration syntax, 1
point of declaration & scope, 1- virtual, 1
- base-class declarations, 1
derived-class declarations, 1- decoration, name, 1, 2, 3, 4
- overloading, 1
- decoupling, 1
- via polymorphism, 1
- decrement, 1, 2
- and increment operators, 1
overloading operator, 1- default
- argument, 1, 2, 3
- as a flag, 1
vs. overloading, 1- constructor, 1, 2, 3, 4, 5
- inheritance, 1
copy-constructor, 1
default values in templates, 1
keyword, 1- defining
- function pointer, 1
initializing at the same time, 1
initializing variables, 1
- variable, 1
- anywhere in the scope, 1
- definition, 1
- array, 1
block, 1
class, 1
complex function definitions, 1
const, 1
declaration, 1
duplicate class definitions and templates, 1
formatting pointer definitions, 1
function, 1
non-inline template member function definitions, 1
object, 1
pure virtual function definitions, 1
storage for static data members, 1
structure definition in a header file, 1- delete, 1, 2, 3
- calling delete for zero, 1
delete-expression, 1, 2
keyword, 1
multiple deletions of the same object, 1
- new
- and containers, 1
for arrays, 1- overloading new and delete, 1
- array, 1
class, 1
global, 1 void*, deleting is a bug, 1
zero pointer, 1Demarco, Tom, 1
- dependency
- makefile, 1
static initialization, 1deprecation, of ++ with a bool flag, 1
- dereference
- *, 1
dereferencing function pointers, 1
pointer, 1- derived
- adding new virtual functions in the derived class, 1
types, 1
virtual keyword in derived-class declarations, 1- design
- analysis and design, object-oriented, 1
- book
- cover, 1
design and production, 1 consulting, mentoring, and design and code walkthroughs from MindView, 1
five stages of object design, 1
inlines, 1
mistakes, 1
pattern, iterator, 1
patterns, 1, 2- destructor, 1
- automatic destructor calls, 1
- with inheritance and composition, 1
doesn’t automatically inherit , 1
explicit destructor call, 1
initialization and cleanup on the heap, 1
inlines, 1
order of constructor and destructor calls, 1
pure virtual destructor, 1
scope, 1
static objects, 1
tracking creations and destructions, 1
virtual destructor, 1, 2, 3, 4
virtual function calls in destructors, 1development, incremental, 1
- diagram
- class inheritance diagrams, 1
inheritance, 1
use case, 1- directive
- preprocessor, 1
- using, namespaces, 1, 2
- header files, 1
directly accessing structure, 1
disallowing assignment, 1
dispatching, double/multiple, 1
division (/), 1
do-while, 1
- double, 1
- dispatching, and multiple dispatching, 1
double precision floating point, 1
internal format, 1- downcast
- static_cast, 1
type-safe, 1duplicate class definitions and templates, 1
- dynamic
- binding, 1
memory allocation, 1, 2
object creation, 1, 2, 3, 4
type checking, 1dynamic_cast, 1
early binding, 1, 2, 3, 4
edition, 2nd, what’s new in, 1
- efficiency, 1
- C++, 1
constructor, 1
creating and returning objects, 1
inlines, 1
memory allocation, 1
references, 1
trap of premature optimization, 1
virtual functions, 1elegance, in programming, 1
Ellis, Margaret, 1
else, 1
- embedded
- object, 1
systems, 1encapsulation, 1, 2
end sentinel, iterator, 1, 2, 3
- enum
- and const in classes, 1
clarifying programs with, 1
hack, 1
incrementing, 1
keyword, 1
type checking, 1
untagged, 1, 2- equivalence, 1
- ==, 1
- error
- exception handling, 1
off-by-one, 1
preventing with common header files, 1
reporting errors in book, 1
structure redeclaration, 1escape sequences, 1
evaluation order, inline, 1
evolution, in program development, 1
- exception handling, 1, 2
- simple use, 1
- executing code
- after exiting main( ), 1, 2
before entering main( ), 1- execution
- controlling, 1
point, 1exercise solutions, 1
exit( ), 1, 2
- explicit
- cast, 1
- C++, 1
for upcasting, 1 keyword to prevent automatic type conversion, 1- exponential, 1
- notation, 1
exponentiation, no operator, 1
expressions, complicated, and operator overloading, 1
extending a class during inheritance, 1
extensible program, 1
- extern, 1, 2, 3, 4, 5, 6, 7
- const, 1, 2
to link C code, 1- external
- linkage, 1, 2, 3, 4
references, during linking, 1extractor and inserter, overloading for iostreams, 1
Extreme Programming (XP), 1, 2, 3
factory, design pattern, 1
- false, 1, 2, 3
- and true, in conditionals, 1
bool, true and false, 1fan-out, automatic type conversion, 1
Fibonacci, 1
fibonacci( ), 1
- file
- header, 1, 2, 3
- code organization, 1
const, 1
namespaces, 1 names, 1
reading and writing, 1
scope, 1, 2, 3
static, 1, 2, 3, 4
structure definition in a header file, 1flags, debugging, 1
- floating point
- float, 1, 2
float.h, 1
internal format, 1
number size hierarchy, 1
numbers, 1, 2
true and false, 1- for
- defining variables inside the control expression, 1
loop, 1, 2
loop counter, defined inside control expression, 1
variable lifetime in for loops, 1formatting pointer definitions, 1
- forward
- declaration, 1
reference, inline, 1Fowler, Martin, 1, 2, 3
fragile base-class problem, 1
fragmentation, heap, 1, 2
free store, 1
free( ), 1, 2, 3, 4, 5
free-standing reference, 1
- friend, 1, 2
- declaration of a nested friend class, 1
global function, 1
injection into namespace, 1
member function, 1
nested structure, 1
structure, 1fstream, 1
- function, 1
- abstract base classes and pure virtual functions, 1
access, 1
adding more to a design, 1
adding new virtual functions in the derived class, 1
address, 1, 2
- argument, 1
- const, 1
const reference , 1
reference, 1 array of pointers to, 1
- assembly-language code generated
- function call, 1
virtual function call, 1 binding, for a function call, 1, 2
body, 1
C library, 1
call operator( ), 1
call overhead, 1, 2
called for side effect, 1
complicated function definitions, 1
constructors, behavior of virtual functions inside, 1
creating, 1
- declaration, 1, 2, 3
- not essential in C, 1
required, 1
syntax, 1 definition, 1
empty argument list, C vs. C++, 1
expanding the function interface, 1
- global, 1
- friend, 1
helper, assembly, 1
- inline, 1, 2, 3
- header files, 1
local class (class defined inside a function), 1
- member function, 1, 2
- calling
- a member function, 1
another member function from within a member function, 1
base-class functions, 1 const, 1, 2
friend, 1
inheritance and static member functions, 1
overloaded operator, 1
selection, 1 objects, 1
- overloading, 1
- operator, 1
using declaration, namespaces, 1 overriding, 1
pass-by reference & temporary objects, 1
- pointer
- defining, 1
to member function, 1
using a function pointer, 1 polymorphic function call, 1
prototyping, 1
pure virtual function definitions, 1
redefinition during inheritance, 1
- return value
- by reference, 1
returning a value, 1
type, 1
void, 1 signature, 1
stack frame for a function call , 1
- static
- class objects inside functions, 1
member, 1, 2, 3
objects inside functions, 1
variables inside functions, 1 templates, 1
type, 1
unique identifier for each, 1
variable argument list, 1
- virtual function, 1, 2
- constructor, 1
overriding, 1
picturing, 1
garbage collector, 1, 2
generic algorithm, 1
get and set functions, 1
get( ), 1
- getline( )
- and string, 1
from iostreams library, 1Glass, Robert, 1
- global
- friend function, 1
functions, 1
new and delete, overloading, 1
object constructor, 1
operator, overloaded, 1
scope resolution, 1
static initialization dependency of global objects, 1
variables, 1GNU C++, 1
Gorlen, Keith, 1
- goto, 1, 2, 3
- non-local, 1
- greater than
- >, 1
or equal to (>=), 1guaranteed initialization, 1, 2
guards, include, on header files, 1
- guidelines
- argument passing, 1
C++ programming guidelines, 1
object development, 1
hack, enum, 1
handle classes, 1, 2
- has-a, 1
- composition, 1
- header file, 1, 2, 3, 4, 5, 6, 7
- code organization, 1
enforced use of in C++, 1
formatting standard, 1
include guards, 1
inline definitions, 1
internal linkage, 1
namespaces, 1
new file include format, 1
order of inclusion, 1
templates, 1, 2
using directives, 1
importance of using a common header file, 1
multiple inclusion, 1
structure definition in a header file, 1- heap, 1, 2
- C heap, 1
compactor, 1
creating objects, 1
fragmentation, 1, 2
guaranteeing that all objects are created on the heap, 1
- storage allocation, 1
- simple example system, 1
helper function, assembly, 1
hexadecimal, 1
- hiding
- function names inside a struct, 1
implementation, 1, 2, 3, 4
- names
- during inheritance, 1
during overloading, 1 variables from the enclosing scope, 1hierarchy, singly-rooted/object-based, 1, 2
high concept, 1
high-level assembly language, 1
hostile programmers, 1
- hybrid
- C++, hybrid object-oriented language, and friend, 1
object-oriented programming language, 1
- identifier
- unique for each function, 1
unique for each object, 1IEEE standard for floating-point numbers, 1, 2
- if-else, 1
- defining variables inside the conditional, 1
statement, 1
ternary ?:, 1ifstream, 1, 2
- implementation, 1, 2
- and interface, separating, 1, 2, 3, 4
- hiding, 1, 2, 3, 4
- compile-time only, 1
implicit type conversion, 1
in situ inline functions, 1
in-memory compilation, 1
- include, 1
- include guards, in header files, 1, 2
new include format, 1incomplete type specification, 1, 2
- increment, 1, 2
- and decrement operators, 1
incrementing and enumeration, 1
overloading operator ++, 1- incremental
- development, 1
programming, 1indeterminate argument list, 1
- indexing
- array, using [ ], 1, 2
zero, 1- inheritance, 1, 2, 3, 4
- choosing composition vs. inheritance, 1
class inheritance diagrams, 1
combining composition & inheritance, 1
copy-constructor, 1
diagram, 1
extending a class during, 1
extensibility, 1
function redefinition, 1
initialization, 1
is-a, 1, 2
multiple, 1, 2, 3, 4, 5
name hiding, 1
operator overloading & inheritance, 1
order of construction, 1
private inheritance, 1
protected inheritance, 1
public inheritance, 1
static member functions, 1
subtyping, 1
virtual function calls in destructors, 1
vs. composition, 1, 2
VTABLE, 1- initialization, 1, 2
- aggregate, 1, 2
- array
- elements, 1
to zero, 1 const data members, 1
const inside class, 1
constructor, 1
constructor initializer list, 1, 2, 3
definition, simultaneous, 1
for loop, 1, 2
- guaranteed, 1, 2
- during inheritance, 1
initialization and cleanup on the heap, 1
initializer for a static variable of a built-in type, 1
lazy, 1
member object initialization, 1
memberwise, 1, 2
object using =, 1
- static
- array, 1
const, 1
dependency, 1
member , 1
zero initialization by the linking-loading mechanism, 1 variables at point of definition, 1
vs. bitcopy, 1injection, friend into namespace, 1
- inline, 1, 2
- class definition, 1
constructor efficiency, 1
constructors, 1
convenience, 1
definitions and header files, 1
destructors, 1
effectiveness, 1
efficiency, 1
function, 1, 2, 3
header files, 1
in situ, 1
limitations, 1
non-inline template member function definitions, 1
order of evaluation, 1
templates, 1- input
- reading by words, 1
standard, 1insert( ), 1
inserter and extractor, overloading for iostreams, 1
instance of a class, 1
instantiation, template, 1
int, 1
- interface, 1
- base-class interface, 1
common interface, 1
defining the class, 1
expanding function interface, 1
for an object, 1
implementation, separation of, 1, 2, 3, 4
implied by a template, 1
user, 1internal linkage, 1, 2, 3, 4, 5
interpreters, 1
interrupt service routine (ISR), 1, 2
- iostreams, 1
- get( ), 1
getline( ), 1
- global overloaded new & delete
- interaction with, 1
limitations of, 1 manipulators, 1
overloading << and >>, 1
reading and writing files, 1
reading input, 1
setf( ), 1
strings with iostreams, 1
width( ), 1- is-a
- inheritance, 1, 2
vs. is-like-a relationships, 1- ISO Standard
- C, 1
- fundamentals, 1
- C++, 1
- header files, 1
istream, overloading operator >>, 1
iteration, in program development, 1
- iterator, 1, 2, 3
- containers, 1
motivation, 1
nested class, 1
Standard C++ Library, 1
Jacobsen, Ivar, 1
Java, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
K&R C, 1
- keywords
- #define, 1, 2
#endif, 1, 2
#ifdef, 1
#include , 1
‘.’ (member selection operator), 1
&, 1
( ), function call operator overloading, 1
*, 1, 2
- ->, 1
- overloading, 1
struct member selection via pointer, 1- ->*, 1
- overloading, 1
.*, 1
::, 1, 2
- =, 1
- overloading, 1, 2
asm, for in-line assembly language , 1
auto, 1, 2
- bool, 1
- true and false, 1
break, 1
case, 1
catch, 1
char, 1, 2, 3
class, 1, 2, 3
const, 1, 2, 3
const_cast, 1
continue, 1
default , 1
delete, 1, 2
do, 1
double, 1, 2
dynamic_cast, 1
else, 1
- enum, 1, 2
- untagged, 1
explicit, 1
- extern, 1, 2, 3, 4, 5, 6
- for alternate linkage, 1
false, 1, 2
float, 1, 2
for, 1, 2
friend, 1
goto, 1, 2, 3
if, 1
inline, 1, 2
int, 1
long, 1
long double, 1
long float (not legal), 1
mutable, 1
namespace, 1, 2, 3
new, 1, 2
operator, 1
private, 1, 2, 3, 4
protected, 1, 2, 3
public, 1
register, 1, 2
reinterpret_cast, 1
return, 1
short, 1
signed, 1
signed char, 1
- sizeof, 1, 2, 3
- with struct, 1
static, 1, 2, 3
static_cast, 1, 2
struct, 1, 2
switch, 1, 2
template, 1, 2
this, 1, 2, 3, 4, 5
throw, 1
true, 1, 2
try, 1
typedef, 1
typeid, 1
- union, 1, 2
- anonymous, 1
unsigned, 1
using, 1, 2
virtual, 1, 2, 3, 4, 5, 6, 7
void, 1
void& (illegal), 1
void*, 1, 2
volatile, 1
while, 1, 2Koenig, Andrew, 1, 2, 3
Lajoie, Josee, 1
Lakos, John, 1, 2
- language
- C++ is a more strongly typed language, 1
C++, hybrid object-oriented language, and friend, 1
hybrid object-oriented programming language, 1large programs, creation of, 1
- late binding, 1, 2
- implementing, 1
layout, object, and access control, 1
lazy initialization, 1
leading underscore, on identifiers (reserved), 1
leaks, memory, 1, 2
left-shift operator <<, 1
- less than
- <, 1
or equal to <=, 1- library, 1, 2, 3, 4
- C, 1
code, 1
creating your own with the librarian, 1
issues with different compilers, 1
- Standard C function
- abort( ), 1
atexit( ), 1
exit( ), 1- lifetime
- for loop variables, 1
object, 1, 2
temporary objects, 1limits.h, 1
- linkage, 1, 2
- alternate linkage specification, 1
controlling, 1
external, 1, 2, 3
internal, 1, 2, 3, 4
no linkage, 1, 2
type-safe, 1linked list, 1, 2, 3
- linker, 1, 2, 3
- collision, 1
external references, 1
object file order, 1
pre-empting a library function , 1
searching libraries, 1, 2
unresolved references, 1Lippman, Stanley, 1
- list
- constructor initializer, 1, 2
linked, 1, 2, 3Lister, Timothy, 1
- local
- array, 1
classes, 1
static object, 1
variable, 1, 2logarithm, 1
- logical
- and &&, 1
const, 1
explicit bitwise and logical operators, 1
not !, 1
operators, 1, 2
or ||, 1long, 1, 2
long double, 1, 2
longjmp( ), 1
- loop
- for, 1
- loop counter, defined inside control expression , 1
variable lifetime in for loops , 1
while, 1Love, Tom, 1
lvalue, 1, 2, 3
machine instructions, 1
- macro
- argument, 1
makefile, 1
- preprocessor, 1, 2, 3
- macros for parameterized types, instead of templates, 1
unsafe, 1 to generate classes, 1magic numbers, avoiding, 1
- main( )
- basic form, 1
- main( )
- executing code after exiting, 1
executing code before entering, 1maintenance, program, 1
- make, 1
- dependencies, 1
suffix rules, 1
SUFFIXES, 1
macros, 1makefile, 1, 2
- malloc( ), 1, 2, 3, 4, 5
- behavior, not deterministic in time, 1
management obstacles, 1
- mangling, name, 1, 2, 3
- and overloading, 1
mathematical operators, 1
Matson, Kris C., 1
- member
- defining storage for static data member, 1
initializing const data members, 1
- member function, 1, 2
- calling, 1
calling another member function from within a member function,