160. C++ Intensive for
Non-C Programmers
Rev. 4.1
Designed for those who can't commit a separate week to learning C
first, this whirlwind introduction to C and C++ offers programmers an
opportunity to learn and use the most essential components of both languages in
one fast-paced, integrated week of hands-on training.
This instructor-led course begins by introducing the built-in data
types, fundamental control structures, and rich expression operator repertoire
common to both C and C++. The second half of the course integrates the
object-oriented features of C++ onto the basic framework of the Standard C
foundation. An introduction to the use of templates and the Standard Template
Library is presented en passant.
While this course gives an excellent introduction to the core
features of C and C++, it omits certain advanced and specialized topics,
including file I/O and bit-level operations.
This course comes with printed course notes and an extensive set of
programming examples. It is designed to be taught in conjunction with the
textbook C++ Primer Plus, 4th ed., which should be procured
separately. The course author
is available to teach this course.
LEARNING OBJECTIVES
·
Learn the fundamental syntax shared between C and C++,
including: pointers, expressions, statements and control structure; declaration
and definition of built-in and user-defined data types and variables;
arithmetic and logical operations.
·
Become familiar with the foundations of Object-Oriented
Programming: abstraction, encapsulation, inheritance, and polymorphism.
·
Learn how use C++ support for object-oriented
programming, including: class declarations, constructors, inheritance, operator
and function overloading, virtual functions and abstract classes.
Course Duration: 5 days
Prerequisite:
·
Due to the large quantity of material presented in this
course, participants should have some programming experience in a high-level
language such as Pascal, PL/1 or ADA.
·
Assembly language, COBOL or BASIC experience alone can
be sufficient if you are a fast study, but if that's all you've got be prepared
for a very challenging five days of training!
1. Getting
Started
Algorithms
Evolution of Programming Languages
History of C and C++
Overview of C / C++ Features
Single vs. Multi-Module Programs
2. Development
Tools
Windows-Based Development
The Microsoft Visual Studio IDE
Compile-time and run-time Debugging
3. Elements
of C/C++
The Token Stream
Expressions
Statements
Declaring Variables
Statement Blocks
Functions
Prototypes
The Preprocessor
4. Data
Types
Identifiers
Reserved Words
Data Definitions
Fundamental Data Types
Constant Expressions
Type Modifiers
5. Operators
Arithmetic Operators
Type Conversion Rules
Type Casts
6. Derived
Types
Arrays
Structures
Pointers
7. Loops
and Relational Expressions
while
for
Increment / Decrement Operators
Relational Operators
Precedence and Associativity
String Comparison
do…while
8. Conditional
Testing
if, if…else
Logical Connectives
switch
break and continue
while/for Duality
9. Functions
Definition Syntax
return Statement
Formal Parameters
Call by Values vs. Call by Reference
Prototypes
Header Files
Passing Pointers
Passing Arrays
const Parameters
Recursion
Inline Functions
References
Default Arguments
Function Overloading
10. Data Scope and Lifetime
Files vs. Block Scope
Storage Classes
Linkage
Lifetime
static Data
register Data
11. Objects and Classes
Object Oriented Development
Abstract Data Types
Classes
Access Specifiers
Class Definition
Class Implementation
Member Functions
Inline Member Functions
Constructors
Object Initialization
Member Initializers
Destructors
12. Source Files Management
Projects
13. Operator Overloading
How to Overload Operators
Generalized Stream I/O
Standard Conversions
Constructors as Conversions
Friend Functions
Static Member Data
14. Class Implementation
Generated Member Functions
The Default Constructor
Copy Constructors
Shallow vs. Deep Copy
Overloading the Assignment Operators
this
15. Inheritance
Class Hierarchies
The protected Access Specifier
Accessor Functions
const Member Functions
Lvalues and Rvalues
Is-A vs. Has-A Relationships
Base Initializers
Object Conversions
16. Polymorphism
Static vs. Dynamic Binding
Virtual Functions
Abstract Base Classes
Pure Virtual Functions
Multiple Inheritance
17. Templates and the STL
Template Functions
Template Classes
Interaction of STL Components
STL Containers
STL Iterators
STL Algorithms
System Requirements
The course can be delivered in any environment supporting a C/C++
compiler. Microsoft Visual C++ 6.0 is recommended.