TTE9750: Mastering C++ Programming with Advanced Topics

$2,795.00


  • classroom

  • virtual

  • Onsite
Duration: 5 Days

This course provides you with the required skills to improve your advanced C++ applications using sound coding techniques and best practices. While learning to solve problems arising from subtleties of the C++ language, you will also acquire techniques for improving performance and efficiency.

What You Will Learn

 

  • Areas in which hidden class members cause hard-to-find bugs
  • Write easier-to-read and easier-to-use code using operator overloading
  • Perform file input/output
  • Concepts of persistent objects
  • Issues in using virtual base classes and multiple inheritance
  • The features of inheritance and polymorphism in program design
  • How templates can reduce code replication
  • Techniques of exception handling in C++
  • Using run-time type identification, the mutable keyword, and other language features

Audience

 

  • Experienced C++ programmers who desire higher-level technical detail
  • Anyone desiring the ability to read and understand complex C++ programs for maintenance or learning purposes

Prerequistes

 

  • A three-month minimum of practical programming experience in C++
  • Prior experience with the compiler used in the lab is helpful but not required
  • Skills or training equivalent to these courses:

Course Outline

 

1. Why Object-Oriented Programming?

2. A Review of C++ and Classes (Optional)

  • Nested Classes
  • const and static Members
  • The mutable Keyword (likely a new topic for many students)
  • explicit constructors (likely a new topic for many students)
  • Pointers to Members (likely a new topic for many students)

3. Hidden Class Details

4. Resolution of Overloaded Functions

5. Operator Overloading in Detail

6. Streams-based File I/O

7. Multiple Inheritance and Virtual Base Classes

8. Protected Methods: The Good and the Bad

9. New-style Casts

10. Template Classes and Functions

11. Exception Handling

12. Run-time Type Identification

13. Namespaces

Course Labs

 

This course comprises about 50% hands-on lab and 50% lecture, with extensive programming exercises that are designed to reinforce skills and concepts learned in the course. Our courses include ample materials and labs to ensure that you are either appropriately challenged or assisted at all times - regardless of skill level. You are invited to bring your ideas and questions to the classroom for discussion. Lecture, group problem-solving, and online laboratories will be used in class. You are encouraged to enhance your skills by using the techniques presented through classroom problem-solving and controlled online workshops.