Intensive C++



In this course, experienced programmers will get a comprehensive, in-depth view of the C++ language. Included is complete coverage from fundamental concepts of class, inheritance, virtual functions. In addition to syntax, this course integrates the pragmatic and the theoretical with discussions of object-oriented principles, beneficial design criteria, efficiency tradeoffs, common design patterns, and other useful idioms and programming techniques.

Note: You are required to bring your own laptop.


  • Experienced programmers who want to learn as much as possible about C++


  • Programming experience in some high-level language such as C, Java or Pascal is recommended
  • No particular prior knowledge of C or C++ is required, but any previous study of them helps

Learning Objectives

  • Classes, member functions, and protection
  • Inheritance, single, and multiple
  • Constructors and destructors
  • Overloading, dynamic binding, and virtual functions
  • Polymorphism and generic programming
  • Template functions and classes
  • Exceptions and error handling
  • Operator overloading
  • Dynamic memory, copy/assignment, and memory management
  • Type conversion and run-time type information (RTTI)
  • Namespaces and project organization
  • Efficiency issues, code generation, and inlining
  • Function objects, pointers, and callbacks
  • Standard library io-streams, strings, and containers
  • Effective programming idioms and techniques
  • Object-oriented programming, patterns, and design

1. Basics

2. Functions

3. Types

4. Member Functions

5. Inheritance

6. Constructors

7. Protection

8. Virtual

9. Templates

10. Pointers

11. Dynamic Memory

12. Operator

13. Dynamic Memory 2

14. Exceptions

15. Constructors 2

16. Scope

17. Virtual 2

18. Inheritance 2

19. Type Conversion

20. Functions 2

21. Std Containers

22. Preprocessor

23. Compilation

24. Patterns

25. Object-Oriented Programming and Design