C++ is undoubtedly one of the most popular programming languages for software development. It brings language enhancements and object-oriented programming support to the extremely popular language C . However, C++ is a large and sometimes difficult language, and even with a Java or C# background, a programmer needs to understand C++ programming style as well as C++ constructs to get the best out of it. This course has a thorough theoretical and practical coverage of the language. This helps to eliminate the misconceptions and poor programming practice that can cause so many problems.
For experienced Java or C# developers, the course will illustrate how to get the benefits of good software engineering and code reuse by using both the standard C++ language as well as the object-oriented programming techniques in real-world programming situations. There will be ample opportunity to apply these techniques during the practical sessions.
This is a hands-on course with a mix of tuition and practical sessions for each technical chapter which reinforce the C++ syntax and object-oriented programming techniques covered in the course.
The course contains an appendix on the latest language enhancements of C 11.
- Java or C# Developers wishing to learn or improve in C++
- Delegates must have solid experience of Java or C# including data types (i.e. class and struct(C#)); Methods, use of call by value and call by reference; Multiple source file projects (requiring project files or equivalent); a solid appreciation of object-oriented principles is assumed.
- Delegates with less than four months or no recent experience of Java or C# should attend the C++ Programming course instead.
- C programmers have a choice. If they have a background or sound academic knowledge of OO then this course should suffice. If they have no appreciation of OO then they should attend the C ++ Programming course.
Please note: Before attending this class delegates must have a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.
At the end of this course you will be able to:
- Define and use data types
- Declare, define and call functions.
- Implement classes.
- Use pointers, dynamic memory and object lifetime.
- Write code that is efficient and robust.
- Implement exception handling.
- Use operator overloading.
- Implement copy and conversion.
- Implement object relationships - composition and association.
- Use container classes and templates.
- Implement class relationships - Inheritance, Interface and Polymorphism.
- Course Prerequisites
- Course Objectives
- Course Delivery
- Course Practical's
- Course Structure
C Plus Plus Quick Start
- Review of OOP principles
- Key features of C++
- Hello World Program
Fundamental and User-Defined Data Types
- Built-in types
- Defining constants
- Type conversions
- Defining and using enumerations
- Built-in arrays and their limitations
- Using the vector class
- Built-in strings as character arrays
- Using the string class
- Defining and using structures
- Declaring, calling and defining functions
- Pass by copy and reference
- Default and anonymous arguments
- Inline functions
- Storage Class
- Class Definition and Implementation
- Member functions
- File organisation
- Defining and Initialising Objects
- Scope, Statics and Nesting
- Concepts and syntax
- Pointers to scalar and structured types
- Null pointers
- Pointers for encapsulated objects
- Pointers vs. references
- Object storage, lifetime and scope
- operators new and delete
- Dynamic arrays
Efficiency and Integrity Issues
- Const declarations
- Const member functions
- Const member data
- Inline function mechanism
- Reference variables
- Classifying and handling exceptions
- Catching and throwing exceptions
- The standard exception class hierarchy
- Uncaught exceptions
- Strategies for handling exceptions
- Operator implementation
- Global operators
- Subscript operators
- Input operators
- Output operators
- Member operators
- Increment and Decrement operators
Copying and Conversions
- Copy constructors
- The copy assignment operator
- Conversions to a class object
- Conversions from a class object
- Scoping and initialisation
- Order of construction
- Member Initialisation lists
- Custody and lifetime
- Constant associations
Containers, Templates and Iterators
- Organising collections of objects
- Template classes
- vector, list, set and map
- Template functions
Inheritance and Polymorphism
- Inheritance of Implementation
- Notation, syntax, terminology
- Scoping and initialisation
- Abstract base classes
- Inheritance of Interface
- Multiple Inheritance
- Destruction issues
The Way Ahead
- Support after this course
- Further C information sources
- Future evolution of C++