|
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, 2 abstraction, 1
- access
- control,
1
- run-time, 1
function, 1
- specifiers,
1, 2
- and object layout, 1
order for,
1
accessors, 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,
1 address-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,
1 Allison, Chuck, 1, 2, 3
- allocation
- dynamic memory allocation,
1, 2
memory, and efficiency,
1
storage,
1 alternate 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,
1 and_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,
1 argv, 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,
1 asctime( ), 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,
1 variable, 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,
1 basic 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,
1 bit 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, 2 bloat, code, 1
- block
- access,
1
and storage allocation,
1
definition,
1 Booch, Grady, 1
- book
- design & production,
1
errors, reporting,
1 bool, 1, 2
- Boolean,
1, 2, 3
- algebra, 1
and floating point,
1
bool, true and false,
1 bounds-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,
1
byte, 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,
1 c-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,
1 cat, 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, 3 cfront, original C++ compiler, 1
chapter overviews,
1
- char,
1, 2, 3
- sizeof, 1
- character, 1
- array literals, 1
character array concatenation,
1
constants,
1 characteristics, 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,
1 class-responsibility-collaboration (CRC) cards, 1
- cleanup,
1, 2
- automatic destructor calls with inheritance and composition, 1
initialization and cleanup on the heap,
1 client 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,
1 collection, 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,
1 comments, 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,
1 compile time constants, 1
- compiler,
1, 2
- creating default constructor, 1
original C++ compiler cfront,
1
running,
1
support,
1 compiling 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, 3 concatenation, 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,
1 const_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,
1 context, 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*,
1 converting 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=,
1 copy-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,
1 cout, 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,
1 crisis, 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,
1 decimal, 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,
1 Demarco, Tom, 1
- dependency
- makefile,
1
static initialization,
1 deprecation, 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,
1 development, 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,
1 duplicate class definitions and templates, 1
- dynamic
- binding,
1
memory allocation,
1, 2
object creation,
1, 2, 3, 4
type checking,
1 dynamic_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,
1 elegance, in programming, 1
Ellis, Margaret,
1
else,
1
- embedded
- object,
1
systems,
1 encapsulation, 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,
1 escape 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,
1 exercise 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,
1 extractor 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,
1 fan-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,
1 flags, 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,
1 formatting pointer definitions, 1
- forward
- declaration,
1
reference, inline,
1 Fowler, 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,
1 fstream, 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,
1 Glass, 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,
1 GNU C++, 1
Gorlen, Keith,
1
- goto,
1, 2, 3
- non-local, 1
- greater than
- >, 1
or equal to (>=),
1 guaranteed 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, 1 hierarchy, 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,
1 IEEE standard for floating-point numbers, 1, 2
- if-else,
1
- defining variables inside the conditional, 1
statement,
1
ternary ?:,
1 ifstream, 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,
1 incomplete type specification, 1, 2
- increment,
1, 2
- and decrement operators, 1
incrementing and enumeration,
1
overloading operator ++,
1
- incremental
- development, 1
programming,
1 indeterminate 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,
1 injection, 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,
1 insert( ), 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,
1 internal 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, 2 Koenig, 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,
1 large 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,
1 limits.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,
1 linked 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,
1 Lippman, Stanley, 1
- list
- constructor initializer,
1, 2
linked,
1, 2, 3 Lister, Timothy, 1
- local
- array,
1
classes,
1
static object,
1
variable,
1, 2 logarithm, 1
- logical
- and &&,
1
const,
1
explicit bitwise and logical operators,
1
not !,
1
operators,
1, 2
or ||,
1 long, 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,
1 Love, 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, 1 magic numbers, avoiding, 1
- main( )
- basic form,
1
- main( )
- executing code after exiting, 1
executing code before entering,
1 maintenance, program, 1
- make,
1
- dependencies, 1
suffix rules,
1
SUFFIXES,
1
macros,
1 makefile, 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,
1
const,
1, 2
four member functions the compiler synthesizes,
1
friend,
1
non-inline template member function definitions,
1
return type,
1
selection,
1
signature,
1
- static,
1, 2, 3
- and inheritance, 1
object, 1
object initialization,
1
overloaded member operator,
1
pointers to members,
1
selection operator,
1
static data member inside a class,
1
vs. non-member operators,
1
- memberwise
- assignment, 1, 2
const,
1
initialization,
1, 2
- memcpy( ), 1
- standard C library function, 1
- memory, 1
- allocation and efficiency, 1
dynamic memory allocation,
1, 2
- leak,
1, 2
- finding with overloaded new and delete, 1
from delete void*,
1
- management
- example of, 1
reference counting,
1 memory manager overhead, 1
read-only (ROM),
1
simple storage allocation system,
1 memset( ), 1, 2, 3, 4
- mentoring
- and training,
1, 2
consulting, mentoring, and design and code walkthroughs from MindView,
1 message, sending, 1, 2, 3
methodology, analysis and design,
1
Meyers, Scott,
1, 2, 3
- MindView
- public hands-on training seminars,
1
seminars-on-CD-ROM,
1 minimum size of a struct, 1
mission statement,
1
mistakes, and design,
1
modulus (%),
1
Moo, Barbara,
1
Mortensen, Owen,
1
multi-way selection,
1
multiparadigm programming,
1
- multiple
- dispatching,
1
inclusion of header files,
1
inheritance,
1, 2, 3, 4, 5
multiple-declaration problem,
1 multiplication (*), 1
multitasking and volatile,
1
Murray, Rob,
1, 2
- mutable,
1
- bitwise vs. logical const, 1
mutators, 1
- name
- clashes,
1
collisions, in C,
1
- decoration,
1, 2, 3, 4
- no standard for, 1
overloading and,
1 file, 1
hiding, during inheritance,
1
- mangling,
1, 2, 3
- and overloading, 1
named constant, 1
- namespace,
1, 2, 3
- aliasing, 1
ambiguity,
1
continuation,
1
header files,
1
injection of friends,
1
referring to names in,
1
single name space for functions in C,
1
std,
1
unnamed,
1
- using,
1
- declaration, 1
- and overloading, 1
- directive, 1
- and header files, 1
naming the constructor, 1
narrowing conversions,
1
NDEBUG,
1
needless recompilation,
1
- nested
- class,
1
friend structure,
1
iterator class,
1, 2
scopes,
1
structures,
1
- new, 1, 2
- and delete for arrays, 1
array of pointers,
1
delete and containers,
1
keyword,
1
new-expression,
1, 2, 3
new-handler,
1
- operator new,
1
- constructor, memory exhaustion , 1
exhausting storage,
1
placement specifier,
1
- overloading
- can take multiple arguments, 1
- new and delete,
1
- for a class, 1
for arrays,
1
global,
1
newline, 1
no linkage,
1, 2
non-local goto,
1
- not
- bitwise,
1
equivalent !=,
1
logical not !,
1 not_eq, != (logical not-equivalent), 1
nuance, and overloading,
1
NULL references,
1, 2
number, conversion to numbers from char*,
1
- object,
1, 2
- address of, 1
const member functions,
1
creating a new object from an existing object,
1
creating on the heap,
1
definition of,
1
definition point,
1
destruction of static,
1
dynamic object creation,
1, 2
- file,
1
- order during linking, 1
five stages of object design, 1
function objects,
1
global constructor,
1
guidelines for object development,
1
interface to,
1
layout, and access control,
1
lifetime of an object,
1, 2
local static,
1
member,
1
module,
1
object-based,
1
object-based C++,
1
outside,
1
pass by value,
1
passing and returning large objects,
1
scope, going out of,
1
- size,
1
- forced to be non-zero, 1
slicing, 1, 2
- static
- class objects inside functions,
1, 2
initialization dependency,
1 temporary, 1, 2, 3, 4
unique address, each object,
1 object-based/singly-rooted hierarchy, 1, 2
- object-oriented
- analysis and design,
1
basic concepts of object-oriented programming (OOP),
1
C++, hybrid object-oriented language, and friend,
1
hybrid object-oriented programming language,
1 obstacles, management, 1
octal,
1
off-by-one error,
1
- ofstream,
1, 2
- as a static object, 1
one-definition rule, 1, 2
ones complement operator,
1
- OOP,
1
- analysis and design, 1
basic characteristics,
1
basic concepts of object-oriented programming,
1
Simula programming language,
1
substitutability,
1
summarized,
1
- operator, 1
- &, 1
>> and iostreams,
1
<< overloading to use with ostream,
1
( ), function call,
1
*,
1, 2, 3
-> smart pointer,
1
->* pointer to member,
1
- =,
1
- as a private function, 1
automatic creation,
1
behavior of,
1
doesn’t automatically inherit ,
1
memberwise assignment,
1
private,
1
vs. copy-constructor,
1 ?: ternary if-else, 1
assignment,
1
auto-increment ++,
1
- binary
- operators,
1
overloaded,
1
overloading examples,
1 bitwise, 1
bool behavior with built-in operators,
1
C & C++,
1
casting,
1
choosing between member and non-member overloading, guidelines,
1
comma,
1, 2
complicated expressions with operator overloading,
1
explicit bitwise and logical operators,
1
fan-out in automatic type conversion,
1
- global
- overloaded,
1
scope resolution ::,
1 increment ++ and decrement --, 1
logical,
1, 2
member vs. non-member,
1
- new,
1
- exhausting storage , 1
new-expression,
1
placement specifier,
1 no exponentiation, 1
no user-defined,
1
ones-complement,
1
operators you can’t overload,
1
- overloading,
1, 2, 3, 4
- arguments and return values, 1
check for self-assignment,
1
inheritance,
1
member function,
1
operators that can be overloaded,
1
reflexivity,
1
return type,
1
virtual functions,
1
[ ],
1 pitfalls, 1
postfix increment & decrement,
1
precedence,
1
prefix increment & decrement,
1
preprocessor stringize operator #,
1
relational,
1
- scope resolution ::,
1, 2, 3
- and namespaces, 1
for calling base-class functions,
1 shift, 1
sizeof,
1
type conversion overloading,
1
- unary,
1, 2
- overloaded, 1
overloading examples,
1 unusual overloaded, 1
[ ],
1, 2, 3
++,
1
member selection,
1
- optimization
- inlines, 1
return value optimization,
1
- optimizer
- peephole, 1
global,
1
- or
- | bitwise, 1
|| logical,
1, 2, 3
- order
- access specifiers, 1
constructor and destructor calls,
1
constructor calls,
1
- organization, code, 1
- header files, 1
or_eq, |= (bitwise or-assignment), 1
- ostream,
1
- overloading operator <<, 1, 2
output, standard, 1
outside object,
1
- overhead
- assembly-language code generated by a virtual function,
1
function call,
1, 2
memory manager,
1
size overhead of virtual functions,
1
- overloading, 1
- << and >> for iostreams, 1
assignment,
1
choosing between members and non-members, guidelines,
1
constructor,
1
default arguments, difference with overloading,
1
fan-out in automatic type conversion,
1
function,
1
function call operator( ),
1
global operators vs. member operators,
1
namespaces, using declaration,
1
new & delete,
1
- new and delete
- array,
1
class,
1
global,
1 on return values, 1
- operator,
1
- << to use with ostream, 1
++,
1
-> smart pointer operator,
1
->* pointer-to-member,
1
inheritance,
1
operators that can be overloaded,
1
operators that can’t be overloaded,
1
overloading reflexivity,
1
type conversion,
1
virtual functions,
1
[ ],
1 operator , 1
overriding, difference,
1
pitfalls in automatic type conversion,
1
- overriding, 1
- and overloading, 1
during inheritance,
1
function,
1 overview, chapters, 1
- ownership,
1, 2, 3, 4
- and containers, 1, 2, 3, 4
pair programming,
1
paralysis, analysis,
1
- parsing,
1
- parse tree, 1
pass-by-reference, 1
- pass-by-value,
1, 2
- and arrays, 1
- passing
- and returning
- addresses, 1
addresses, with const,
1
by value, C,
1
large objects,
1 by value, 1, 2, 3
temporaries,
1
- patterns, design, 1, 2
- iterator, 1
performance issues, 1
Perl,
1
- pitfall
- automatic type conversion,
1
C,
1
operators,
1
preprocessor,
1 placeholder arguments, 1
placement, operator new placement specifier,
1
planning, software development,
1
Plauger, P.J.,
1
Plum, Tom,
1, 2, 3
point, sequence,
1, 2
- pointer,
1, 2, 3, 4, 5
- argument passing, vs. references, 1
arithmetic,
1
- array,
1
- making a pointer look like an array, 1
of pointers,
1 assignments, const and non-const, 1
classes containing, and overloading operator=,
1
const,
1, 2
formatting definitions,
1
introduction,
1
- member, pointer to,
1
- function, 1
overloading,
1 pointer & reference upcasting, 1
- pointer to function
- array of,
1
defining,
1
using,
1 reference to pointer, 1
reference, difference,
1
smart pointer,
1
square brackets,
1
stack,
1
struct, member selection with ->,
1
upcasting,
1
void,
1, 2, 3, 4
void*,
1
vs. reference when modifying outside objects,
1
- polymorphism, 1, 2, 3, 4, 5, 6
- containers, 1
polymorphic function call,
1
vs. downcasting,
1 post-decrement --, 1
post-increment ++,
1
postconditions,
1
postfix operator increment & decrement,
1
pre-decrement --,
1
pre-increment ++,
1
precedence, operator,
1
preconditions,
1
prefix operator increment & decrement,
1
- preprocessor,
1, 2, 3
- #define, #ifdef and #endif, 1
and scoping,
1
debugging flags,
1
- macro,
1, 2, 3
- unsafe, 1
pitfall, 1
problems,
1
string concatenation,
1
stringizing,
1
token pasting,
1
value substitution,
1 prerequisites, for this book, 1
preventing automatic type conversion with the keyword explicit,
1
printf( ),
1
- private,
1, 2, 3, 4, 5, 6
- copy-constructor, 1
private inheritance,
1 problem space, 1
process,
1
production, and book design,
1
- program
- maintenance,
1
structure when writing code,
1 programmer, client, 1, 2
- programming
- basic concepts of object-oriented programming (OOP),
1
Extreme Programming (XP),
1, 2, 3
in the large,
1
incremental process,
1
multiparadigm,
1
pair,
1 programs, calling other, 1
project building tools,
1
- promotion,
1
- automatic type conversion, 1
- protected, 1, 2, 3, 4
- inheritance, 1
- prototyping
- function, 1
rapid,
1 pseudoconstructor, for built-in types, 1, 2, 3
- public,
1, 2
- inheritance, 1
seminars,
1
- pure
- abstract base classes and pure virtual functions, 1
C++, hybrid object-oriented language, and friend,
1
substitution,
1
virtual destructor,
1
virtual function definitions,
1 push-down stack, 1
push_back( ), for vector,
1
putc( ),
1
puts( ),
1
Python,
1, 2, 3, 4, 5, 6, 7, 8
qualifier, c-v,
1
ranges, used by containers and iterators in the Standard C++ Library,
1
rapid prototyping,
1
re-declaration of classes, preventing,
1
re-entrant,
1
read-only memory (ROM),
1
- reading
- files,
1
input by words,
1 realloc( ), 1, 2, 3
recompiling C programs in C++,
1
- recursion,
1, 2
- and inline functions, 1
redefining during inheritance, 1
reducing recompilation,
1
refactoring,
1
- reference,
1, 2, 3
- C++, 1
- const,
1, 2
- and operator overloading, 1
for argument passing,
1 efficiency, 1
external, during linking,
1
free-standing,
1
function,
1
NULL,
1, 2
passing const,
1
pointer & reference upcasting,
1
pointer, reference to a pointer,
1
reference counting,
1, 2
rules,
1
upcasting,
1
void reference (illegal),
1
vs. pointer when modifying outside objects,
1 reflexivity, in operator overloading, 1
- register,
1
- variables, 1
reinterpret_cast, 1
relational operators,
1
reporting errors in book,
1
request, in OOP,
1
require( ),
1, 2, 3
- require.h,
1, 2, 3, 4
- function definitions, 1
requireArgs( ), from require.h, 1
requirements analysis,
1
- resolution, scope
- global,
1
nested structures,
1
operator ::,
1 resolving references, 1
- return
- by value,
1
by value as const, and operator overloading,
1
const value,
1
constructor return value,
1
efficiency when creating and returning objects,
1
function return values, references,
1
keyword,
1
- operator
- overloaded return type,
1
overloading arguments and return values,
1 overloading on return values, 1
passing and returning by value, C,
1
passing and returning large objects,
1
references to local objects,
1
type,
1
- value,
1
- from a function, 1
optimization,
1
semantics,
1
void,
1
RETURN, assembly-language, 1
reusability,
1
- reuse,
1
- code reuse, 1
existing class libraries,
1
source code reuse with templates,
1
templates,
1 right-shift operator (>>), 1
ROM, read-only memory, ROMability,
1
- rotate,
1
- bit manipulation, 1
RTTI, run-time type identification, 1, 2
rule, makefile,
1
Rumbaugh, James,
1
- run-time
- access control,
1
binding,
1
debugging flags,
1
type identification (RTTI),
1, 2 rvalue, 1, 2
safe union,
1
Saks, Dan,
1, 2, 3, 4
scenario,
1
scheduling,
1
Schwarz, Jerry,
1
- scope,
1, 2, 3, 4
- consts, 1
file,
1, 2
going out of,
1
hide variables from the enclosing scope,
1
preprocessor,
1
- resolution
- global,
1
nested structures,
1
- operator ::,
1, 2
- and namespaces, 1
for calling base-class functions,
1
scoped variable, 1
static member initialization,
1
storage allocation,
1
use case,
1 second edition, what’s new, 1
security,
1
- selection
- member function,
1
multi-way,
1 self-assignment, checking for in operator overloading, 1, 2
semantics, return value,
1
- seminars
- on CD-ROM, from MindView,
1
public,
1
training seminars from MindView,
1 sending a message, 1, 2, 3
sentinel, end,
1, 2
- separate compilation,
1, 2
- and make, 1
separation of interface and implementation, 1, 2, 3
sequence point,
1, 2
- set
- <set> standard header file,
1
and get functions,
1
container class from the Standard C++ Library,
1 setf( ), iostreams, 1
setjmp( ),
1
SGI (Silicon Graphics) STL project,
1
- shape
- example,
1
hierarchy,
1 shift operators, 1
short,
1
side effect,
1, 2
signature,
1
- signed,
1
- char, 1
Silicon Graphics (SGI) STL project, 1
Simula programming language,
1, 2
single-precision floating point,
1
singly-rooted/object-based hierarchy,
1, 2
- size
- built-in types,
1
- object,
1
- forced to be nonzero, 1
size_t, 1
storage,
1
struct,
1
word,
1
- sizeof, 1, 2, 3, 4
- char, 1
struct,
1
- slicing
- object slicing, 1
Smalltalk, 1, 2, 3, 4, 5
smart pointer operator ->,
1, 2
- software
- crisis,
1
development methodology,
1 solution space, 1
solutions, exercise,
1
source code availability,
1
source-level debugger,
1
- space
- problem,
1
solution,
1
- specification
- incomplete type, 1, 2
system specification,
1
- specifier
- access specifiers, 1, 2
- no required order in a class, 1
to modify basic built-in types, 1 specifying storage allocation, 1
sstream standard header file,
1
- stack,
1, 2, 3, 4
- function-call stack frame, 1
pointer,
1
push-down,
1
storage allocation,
1
variable on the stack,
1 Stack example class, 1, 2, 3, 4, 5, 6, 7, 8, 9
- Standard C++ Library
- algorithms,
1
insert( ),
1
push_front( ),
1
ranges, used by containers and iterators,
1 standard for each class header file, 1
standard input,
1
standard library,
1
- standard library header file
- cassert,
1
cstdlib,
1
cstring,
1
set,
1
sstream,
1
typeinfo,
1 standard output, 1
Standard Template Library (STL),
1
standards, C++ Committee,
1
startup costs,
1
startup module,
1
Stash example class,
1, 2, 3, 4, 5, 6, 7, 8, 9
- statement
- continuation over several lines,
1
mission,
1
- static, 1, 2, 3
- array, 1
- initialization, 1
class objects inside functions, 1
confusion when using,
1
const,
1
- data
- area,
1
- members inside a class,
1, 2
- defining storage for, 1
destruction of objects, 1
file,
1, 2
initialization dependency,
1
initialization to zero,
1
initializer for a variable of a built-in type,
1
local object,
1
- member functions,
1, 2, 3
- inheritance and, 1
objects inside functions, 1
- storage,
1, 2
- area, 1
type checking, 1
variables in functions as return values,
1
variables inside functions,
1
- static_cast, 1, 2
- downcast, 1
std namespace, 1
step, in for loop,
1
- STL
- Silicon Graphics (SGI) STL project,
1
Standard Template Library,
1
- storage
- allocation, 1
- const and extern, 1
auto storage class specifier, 1
const, in C vs. C++,
1
defining storage for static data members,
1
extern storage class specifier,
1
register storage class specifier,
1
running out of,
1
simple allocation system,
1
sizes,
1
- static,
1, 2
- area, 1
storage class specifier,
1 storage class, 1 storing type information, 1
Straker, David,
1
- string,
1, 2
- class, Standard C++, 1
concatenation,
1
copying a file into,
1
getline( ),
1
preprocessor # to turn a variable name into a string,
1
preprocessor string concatenation,
1
- stringizing, preprocessor, 1
- macros, 1
operator #,
1 stringstream, 1
strong typing, C++ is a more strongly typed language,
1
Stroustrup, Bjarne,
1, 2, 3, 4, 5, 6, 7
- struct,
1, 2, 3, 4
- aggregate initialization, 1
array of,
1
hiding function names inside,
1
minimum size,
1
pointer selection of member with ->,
1
size of,
1
- structure
- aggregate initialization and structures, 1
declaration,
1, 2
definition in a header file,
1
friend,
1
nested,
1
redeclaring,
1 subobject, 1, 2, 3, 4
substitutability, in OOP,
1
- substitution
- principle,
1
value,
1 subtraction (-), 1
subtyping,
1
suffix rules, makefile,
1
SUFFIXES, makefile,
1
sugar, syntactic,
1
- switch,
1, 2
- defining variables inside the selector statement, 1
- syntax
- function declaration syntax, 1
operator overloading,
1
sugar, with operator overloading,
1
variable declaration syntax,
1
- synthesized
- default constructor, behavior of, 1
member functions that are automatically created by the compiler,
1, 2 system specification, 1
system(),
1
tab,
1
table-driven code,
1
tag name,
1
tag, comment for linking,
1
- template,
1, 2
- argument list, 1
basic usage,
1
class,
1
constants and default values in templates,
1
container class templates and virtual functions,
1
function,
1
generated classes,
1
header file,
1, 2
implies an interface,
1
inline,
1
instantiation,
1
multiple definitions,
1
non-inline template member function definitions,
1
preprocessor macros for parameterized types, instead of templates,
1
Standard Template Library (STL),
1
Stash and Stack examples as templates,
1
weak typing,
1
- temporary object, 1, 2, 3
- bugs, 1
function references,
1
passing a temporary object to a function,
1
return value,
1 ternary operator, 1
- testing
- automated,
1
Extreme Programming (XP),
1 Thinking in C++ Volume 2, what’s in it and how to get it, 1
Thinking in C: Foundations for Java and C++ CD ROM,
1, 2, 3
- this,
1, 2, 3, 4, 5, 6, 7
- address of current object, 1
throw, 1
time, Standard C library,
1
time_t,
1
token pasting, preprocessor,
1
toupper( ), unexpected results,
1
trailing arguments only can be defaults,
1
- training,
1
- and mentoring, 1, 2
seminars from MindView,
1 translation unit, 1, 2
- true,
1, 2, 3, 4
- and false, in conditionals, 1
bool, true and false,
1 try block, 1
- type
- abstract data type,
1
- automatic type conversion,
1
- preventing with the keyword explicit, 1
with operator overloading,
1 base, 1
basic built-in,
1
cast,
1
- checking,
1, 2, 3, 4
- stricter in C++, 1
- conversion, 1
- implicit, 1
creation, composite, 1
data type equivalence to class,
1
derived,
1
function type,
1
improved type checking,
1
incomplete type specification,
1, 2
inheritance, is-a,
1
initialization of built-in types with ‘constructors’,
1
run-time type identification (RTTI),
1, 2
storing type information,
1
- type checking
- for enumerations,
1
for unions,
1 type-safe linkage, 1
user-defined,
1, 2
- weak typing,
1, 2
- C++ via templates, 1
type-safe downcast, 1
typedef,
1, 2, 3, 4, 5
typefaces, book,
1
typeid,
1
typeinfo standard header file,
1
- UML,
1
- indicating composition, 1
Unified Modeling Language,
1, 2
- unary
- examples of all overloaded unary operators, 1
minus -,
1
- operators,
1, 2
- overloaded , 1
plus +, 1 underscore, leading, on identifiers (reserved), 1
Unified Modeling Language (UML),
1, 2
- union
- additional type checking,
1
- anonymous,
1
- file scope, 1
difference between a union and a class, 1
member functions and access control,
1
safe,
1
saving memory with,
1 unit, translation, 1
- unnamed
- arguments,
1
namespace,
1 unresolved references, during linking, 1
unsigned,
1
untagged enum,
1, 2
unusual operator overloading,
1
- upcasting,
1, 2, 3, 4, 5, 6
- by value, 1
copy-constructor,
1
explicit cast for upcasting,
1
- pointer,
1
- and reference upcasting, 1
reference, 1
type information, lost,
1
- use case, 1
- iteration, 1
scope,
1 user interface, 1
user-defined data type,
1, 2, 3
- using keyword, for namespaces,
1, 2
- declaration, 1, 2
- directive,
1, 2, 3
- header files, 1
namespace std, 1
- value
- constant,
1
minimum and maximum for built-in types,
1
pass-by-value,
1
preprocessor value substitution,
1
return,
1
returning by value,
1
- varargs, 1
- variable argument list, 1
- variable
- argument list, 1
- varargs, 1
automatic, 1, 2, 3
declaration syntax,
1
defining,
1
file scope,
1
global,
1
going out of scope,
1
hide from the enclosing scope,
1
initializer for a static variable of a built-in type,
1
lifetime, in for loops,
1
local,
1, 2
point of definition,
1
register,
1
scoped,
1
stack,
1
turning name into a string,
1
- vector, 1
- assignment, 1
of change,
1
push_back( ),
1
Standard C++ Library,
1
- virtual destructor, 1, 2, 3, 4
- pure virtual destructor, 1
- virtual function, 1, 2, 3, 4, 5
- adding new virtual functions in the derived class, 1
and dynamic_cast,
1
assembly-language code generated by a virtual function,
1
constructors, behavior of virtual functions inside,
1, 2
destructors, behavior of virtual functions inside,
1
efficiency,
1
late binding,
1
operator overloading and virtual functions,
1
overriding,
1
picturing virtual functions,
1
- pure virtual function
- and abstract base classes,
1
definitions,
1 size overhead of virtual functions, 1
- virtual keyword,
1, 2
- in base-class declarations, 1
in derived-class declarations,
1
virtual memory, 1
visibility,
1
- void
- argument list,
1
casting void pointers,
1
keyword,
1
pointer,
1, 2, 3, 4, 5
reference (illegal),
1
- void*, 1, 2, 3
- bugs, 1
containers and ownership,
1
delete, a bug,
1
- volatile, 1, 2
- casting with const_cast, 1
Volume 2, Thinking in C++, 1
vpointer, abbreviated as VPTR,
1
- VPTR,
1, 2, 3, 4, 5
- installation by the constructor, 1
- VTABLE, 1, 2, 3, 4, 5, 6, 7
- inheritance and the VTABLE, 1
Waldrop, M. Mitchell,
1
- weak
- typing,
1
- in C++ via templates, 1
weakly typed language, 1
- while loop, 1, 2
- defining variables inside the control expression, 1
width( ), iostreams, 1
wild-card,
1
Will-Harris, Daniel,
1, 2
word size,
1
writing files,
1
xor ^ bitwise exclusive-or,
1, 2
xor_eq, ^= bitwise exclusive-or-assignment,
1
XP, Extreme Programming,
1
zero indexing,
1
- [ ]
- array indexing,
1
overloaded indexing operator,
1, 2
^ bitwise exclusive-or,
1
^= bitwise,
1
|, bitwise or,
1
|= bitwise,
1
||, logical or,
1, 2
~ bitwise not/ones complement,
1
~, destructor,
1
|
|