|
|
|
|
|
|
|
|
|
Intense C++ |
Duration: 5 days |
|
|
- Application developers
- Programmers
- System designers
|
|
Familiarity with
a structured (preferably C) or object-oriented language is a prerequisite for this course. |
|
|
Description |
Intense C++ offers
a total immersion approach to learning C++. The course starts
with basic OO concepts, then introduces their implementation in
C++. The language is presented, not as an extension of C, but
as a demonstration of how object-oriented development promotes
a new, productive way of thinking. A carefully selected set of
features important for object-oriented development is presented
first, while more advanced features are dealt with when the students
have a solid grasp on the fundamentals. A large part of the course
consists of exercises. |
|
Objectives |
InferData's goal
is to transfer as much knowledge as possible from the classroom
to the workplace. Intense C++ has been carefully planned to ease
the student into new concepts with the use of lots of exercises,
labs, and sample code. At the end of this course, students should:
- Apply basic concepts of OO designs
- Be able to write and maintain C++ programs
- Write robust and maintainable C++ code
- Be able to deploy good C++ programming practices
- Leave with skills for the industrial C++ development
|
|
Course Outline |
Object-Oriented Technology
- Perspective
- Objects in Code
Evolution of a C Program
- Initial Design
- First Redesign
- Second Redesign
- Third Redesign
- Fourth Redesign
First Look at C++
- C++ Essentials
- Class Initialization
- Basic Composition and Delegation
- Anatomy of C++ Applications
Inheritance
- Separation of Interface and Implementation
- Reuse of Implementation
- Framework Design
- Design Guidelines for Inheritance
Memory Management
- Manual Object Management
- Automatic Object Management
- Design Guidelines
|
|
Advanced Features
- Default Parameters
- References
- Const Features
- Inline Functions
- Static Members
- Friend Declarations
- Operator Overloading
- Copy Constructor
- Assignment Operator
- Namespaces
- Casting
Templates
Exceptions
- Traditional Error Handling
- Object-Oriented Error Handling
Advanced OO Design in C++
- Design Heuristics
- Contracts
- Patterns and Idioms
| |
|
|