- Learn C++ fast! Real code, thoroughly explained-and
ready to use!
- Completely updated with over 200 new examples
- All the fundamentals: variables, operators, arrays,
functions, program control, I/O, files, streams, memory
management, sorts, searches, and more
- Advanced topics: data structures, templates, string
classes, and exception handling
- See the code and put it to work—fast, easy, and
hands on
C++ Programmer's Notebook, Second Edition teaches
C++ the way you want to learn it: with real code! This
quick, visual tutorial presents hundreds of annotated
"snapshots" of working code, covering all the C++ concepts
and techniques you need—and delivering specific
solutions you can use right now!
Practical, comprehensive coverage includes:
- Variables, operators, expressions, arrays, and C-style
strings
- Structures, functions, and program control
- Objects, classes, overloading, inheritance, and
pointers
- Virtual and friend functions
- I/O, files, streams, and memory management
- Sorts and searches
- Data structures and templates
- String classes and exception handling
- Quality checklists for building robust,
high-performance code!
Completely updated with over 200 new examples, C++
Programmer's Notebook, Second Edition is the perfect
starting point for new C++ developers-and the perfect
reference for experienced C++ developers looking for quick
solutions!
Contents Preface.
1. Working with Variables.
Naming Variables. Using
Variables. Boolean Variables. Integer Variables. Character
Variables. Escape Sequences. Floating Point Variables.
Inside Exponential Notation. Data Type Conversion.
Assigning Values to Variables. Constants. Scope. Local
Variables versus Global Variables. File and Class Scope.
Storage Specifiers. Static. Register. Auto. Storage
Specifier Rules.
2. Working with Operators and Expressions. Expressions. Arithmetic
Operators. The +=, -=, *=, /= Operators. The ++, —
Operators. Relational Operators. The == and != Operators.
Logical Operators. Bitwise Operators. Bitwise AND. Bitwise
OR. Bitwise XOR (exclusive OR). Bitwise NOT. The Shift Left
Operator. The Shift Right Operator. ?-The Conditional
Operator. An Introduction to Indirection. The Precedence
Table. Working with Expressions.
3. Working with Arrays and C-Style Strings. Arrays and Strings.
Assigning Values to an Array. Multidimensional Arrays.
Assigning Values to a Multidimensional Array. Allocating
Arrays Using the new Operator. Allocating Multidimensional
Arrays Using the new Operator. C-Style Strings. Copying One
C-Style String to Another Using strcpy( ) and strncpy( ).
Reading in a C-Style String Using gets( )and fgets( ).
Reading a C-Style String from the Keyboard Using scanf( ).
Reading a C-Style String from the Keyboard with the
Extraction Operator. Reading a C-Style String from the
Keyboard with get( ) and getline( ). Comparing Two C-Style
Strings. Displaying a C-Style String with printf().
Displaying a C-Style String with puts( ). Displaying a
String with the Insertion Operator. Concatenating C-Style
Strings with strcat( ) and strncat( ). Determining the
Length of a C-Style String with strlen( ). Determining the
Length of a Substring with strcspn( ). Determining the
Length of a Substring with strspn( ). Locating a Character
within a C-Style String Using strpbrk( ). Locating the
First Occurrence of a Substring in a C-Style String with
strstr( ). Dividing a C-Style String into Several
Substrings Using strtok( ). C-Style Strings versus the
String Types of the C++ Standard Library.
4. Working with Structures. Structures. A Structure at
Work. Running the Sample Program. Other Ways to Declare an
Instance of a Structure. Assigning Values to Structure
Members. Multiple Instances of Structures. Assigning Values
to Multiple Instances. Structures within Structures.
Passing Members of a Structure to a Function. Passing
Members by Address. Passing a Structure to a Function.
Passing a Structure to a Function by Reference. Functions
Returning Structures. Unions. Enumerations. The typedef
Declaration.
5. Working with Functions. Anatomy of a C++ Program.
The main( ) Function. How to Use a Function. Passing
Arguments by Value. Passing Multiple Arguments. Passing
Arguments Using Reference Variables. Passing Arguments to
the main( ) Function. Returning Values. Building a Program
Using Functions. Additional Function Facts. Program
Statements. White Space Characters. Preprocessor
Directives. More Preprocessor Directives. #define with
Arguments. inline Function. #if, #else, #elif, #endif.
#ifdef, #ifndef, #undef. Using Include Once Header Files.
#line, #error, and #pragma.
6. Working with Program Control. Program Control
Statements. The if Statement. The if...else Statement. The
? Operator. Nested if. Multiple Conditions. The
switch...case Statement. Tricks of the Trade. for Loop.
More on for Loops. while Loop. do...while Loop. break.
Continue. exit( ). goto.
7. Working with Objects and Classes. Classes. Declaring an
Instance of a Class. Hiding Data Using the Access Control
Specifier. The Constructor. More on Initialization. The
Destructor. The Copy Constructor. Defining a Function
Member outside the Class Declaration.
8. Working with Overloading. Overloading. Overloading a
Unary Operator. Overloading a Binary Operator. Overloading
the Input and Output Operators. Operators that Can and
Cannot Be Overloaded.
9. Working with Inheritance. Inheritance. Access
Specifiers. More about Inheritance. Multiple Inheritance.
Ambiguity in Multiple Inheritance. Containership Class.
Levels of Inheritance.
10. Working with Pointers. Pointers and References.
More on Using Pointers. Incrementing Pointers. Decrementing
Pointers. Pointer Math. An Array of Pointers.
Pointer-to-a-Pointer. Pointer-to-a-Function. Tricks of the
Trade.
11. Working with Virtual and Friend Functions.
Creating a Virtual
Function. Virtual Destructors. Creating a Pure Virtual
Function. More about Virtual Functions. Friend Functions.
Creating a Friend Function from a Function Member Forward
Reference of a Class. Friend Classes.
12. Working with Keyboard Input and Screen Output.
C-Style Keyboard Input and
Screen Output. Reading a Character from the Keyboard
without Echo Using getch( )and _getch( ). Displaying a
Character on the Screen with putchar( ). Reading a String
from the Keyboard with Less Overhead Using gets( ). Reading
Input with Greater Control Using scanf( ). Reading Data
with scanf( ). Limiting the Number of Characters Read.
Specifying Input String Contents. Creating Your Own
Separator. Displaying a String with Less Overhead Using
puts( ). Displaying a String with Greater Control Using
printf( ). Displaying a String with printf( ). Displaying
an Integer with printf( ).
13. Working with Files and Streams. File Input/Output and
Opening and Closing a File. Mode Specifiers for the fopen(
) Function. Writing a Character to a File Using putc( )and
fputc( ). Reading a Character from a File Using getc( ).
Tricks of the Trade. Writing a String to a File Using
fputs( ). Reading a String from a File Using fgets( ).
Writing an Integer to a File Using putw( ). Reading an
Integer from a File Using getw( ). Writing a Block of Data
to a File Using fwrite( ). Reading a Block of Data from a
File Using fread( ). Creating a Database File. Reading a
Record. Writing Various Data Types to a File or a String
Using fprintf( ) and sprintf( ). Reading Various Data Types
from a File or a String Using fscanf( ) and sscanf( ).
Moving to Specific Locations in a File Using fseek( ).
Other File Manipulation Functions. Using a File in C++.
Writing Information to a File Using C++. Reading a String
from a File Using C++. Reading and Writing a Single
Character to a File Using C++. Reading and Writing an
Object to a File. Specify the File Mode in C++. Moving to
Specific Locations in an Input Using File Using seekg( )and
tellg( ). Moving to Specific Locations in an Output File
Using seekp( ) and tellp( ). Reading and Writing to the
Same File.
14. Working with Memory Management. Computer Memory. Data in
the Program Process Space. Storing Data on the Heap.
Storing an Array of Objects on the Heap. Reallocating Heap
Memory. Storing Data on the Heap Using the new Operator.
Using a Dynamic Array. More on Dynamic Arrays.
15. Working with Sorting and Searching Data. The Bubble Sort. Inside
the Bubble Sort. The Selection Sort. Inside the Selection
Sort. The Quick Sort. Inside the Quick Sort. The Sequential
(Linear) Search. The Binary Search. A Closer Look at the
Binary Search Routine. Using bsearch( ).
16. Working with Data Structures. Linked Lists. Adding a
Node to the End of a Linked List. Adding a Node to Maintain
Sorted Order. Removing a Node from a Linked List. Linked
List Operators. More on Linked List Operators. Stacks.
Implementing a Stack as an Array. Implementing a Stack as a
Linked List. Using a Linked List Stack. Queues.
Implementing a Queue as an Array. Implementing a Queue as a
Linked List. Using a Linked List Queue.
17. Working with Templates. Templates. Using Template
Functions with a Defined Type. Templates with Multiple
Parameters. Class Templates. Template Class
Friendships.
18. Working with Assertions and Exceptions. Assertions. try, catch,
and throw. More about try, catch, and throw. Functions that
Throw Exceptions. Throwing Objects.
Appendix A: A User-Defined String Class. Appendix B: Keeping Current. Appendix C: Programmer's Checklist. Appendix D: ASCII Codes. Index.