Table of Contents
- why you should learn C++
- object-oriented programming languages
- procedure-oriented programing languages
- programming cliches
- compiling, linking, and executing
- statements and declarations
- the output operator,
<<
, and character strings
- case sensitivity and blank insensitivity
- operators and operands
- data types and variable declarations
- initialization and assignment
- integral data types
- arithmetic
- precedence and association
- binary and unary operators
- type casting
- the input operator,
>>
- input redirection
- calling and returning from functions
- arguments, parameters, and values
- function overloading
- making programs easier to reuse, read, and debug
- making programs easier to augment, improve, and adapt
- extent and scope
- local, static, and global variables
- compound statements
- user-defined data types, classes, and objects
- class specification and member variables
- the class-member operator
- the special, class-object argument
- member function prototypes
- the class-scope operator,
::
- the default constructor
- argument-bearing constructors
- reader and writer member functions
- imaginary member variables
- access functions and data abstraction
- making programs easier to reuse
- private member variables and member functions
- the public interface
- inheriting member variables and member functions
- derived classes and base classes
- multiple inheritance and shadowing
- explicit representation
- reusing functions and avoiding duplication
- the local-view and the look-it-up principles
- the need-to-know and the keep-it-simple principles
- equal,
==
, and not equal, !=
- greater than,
>
, and less than, <
- not,
!
- Boolean expressions
if
and if else
- empty and compound statements
- the conditional operator,
?:
- and,
&&
, and or, ||
- evaluation order
while
and for
statements
- augmented assignment operators
- increment,
++
, and decrement, --
, operators
- side effects and evaluation order
while
reading and for
reading loops
- action of the input operator at the end of a file
- functions that call themselves
- the base part and the recursion part
- efficiency considerations
- the definition-before-call requirement
- declare now, define later
- arrays of numeric elements
- filling a numeric array from a file
- arrays of class-object elements
- filling an object array from a file
- creating streams
- opening and closing files for reading and writing
ifstream
and ofstream
statements
- pointers and the free store
- allocating space with
new
- the dereferencing operator,
*
- the class-pointer operator,
->
- the address-of operator,
&
- wasting space by defining too-large object arrays
- saving space by defining too-large pointer arrays
- arrays of pointers to miscellaneous objects
- virtual member functions
- pure virtual functions
switch
statements
- the
cerr
output stream
exit
statements
- the mnemonic sterility of numbers
- the enumeration data type
- the integral data types
- the character data type
- character strings and character arrays
- the null character,
\0
- call by value and incomplete argument copying
- using call by reference to access entire objects
- using call by reference to save time
- using call by reference to alter arguments
- copy-free function return
- pass-through objects
- operator overloading
- the
printf
function
- field widths and padding characters
- printing strings, characters, and numbers
- input buffers
- using the input operator with a character pointer
- array names viewed as constant pointers
- characters viewed as integers
- obtaining character codes
- using enumeration constants as character codes
- creating character arrays at run time using
new
- using
strlen
and strcpy
to measure and copy
- garbage and memory leaks
delete
viewed as the complement of new
- destructor member functions
- static member variables
- the excess-reclamation bug
- defining your own copy constructor
- header files
- separating class and member-function definitions
- inline functions
- managing global variables with
static
and extern
- recording file dependencies in a
makefile
- maintaining systems using the
make
utility
- using lists to conserve memory
- internal and external pointers
- the null pointer,
NULL