C++ Programming Introduction
Course length: 5 days
Prerequisites: Experience with a procedural language such as C Programming is recommended. An understanding of object-oriented programming concepts is desirable but not required.
Topics
- Object Oriented C++ Programming Fundamentals: objects, information hiding and encapsulation, abstract data types, methods and messages, classes, class inheritance, polymorphism
- Classes: data encapsulation, definition of classes, member data and functions, this pointer, abstract data types, organizing code
- Functions: function prototypes and type checking, conversion of parameters, default arguments, inline functions, function overloading
- Constructors and Destructors: constructors and initializations, object creation and destruction, multiple constructors in a class, hidden constructors
- Memory Management: static, automatic and heap memory, new and delete, memory allocation errors, hiding details of memory management in a class, implementing a dynamic string class
- References and Argument Passing: call by value, reference declarations, reference arguments, copy constructor, constant arguments and functions
- Operator overloading, semantics of assignment, initialization vs. assignment, overloading assignment, type conversions
- Scope and Access Control: scope, friend functions, const and enumeration types, static members
- Introduction to Inheritance: inheritance for modeling and reuse, class derivation, access control, base class initialization, composition, initializing class type members
- Polymorphism and Virtual Functions: virtual functions and dynamic binding, polymorphism, pointer conversion, virtual destructors, abstract classes and pure virtual functions
- ANSI C++ Library: new header files, namespaces in the standard library, ANSI C++ string classes
- Templates: mechanism, function templates, class templates, generic programming, implementing a general array class, standard template library
- Input/Output: streams I/O library, formatted stream I/O, file I/O, I/O in user defined classes
- Practical Aspects: interfacing C and C++, namespaces, reliability in C++ programs, testing considerations, efficiency considerations
- Exception Handling: mechanism, exceptions compared to other error handling techniques, exception context and stack unwinding, uncaught exceptions, automatic cleanup in exception handling
- Runtime Type Information: type_info class and typeid operator, type safe pointer, conversion, new C++ cast syntax
Return to Courses