Course Outline
Course Overview and Introduction
Comparative Analysis of C, C++, Java, and C# Programming Languages
Instructor-led development environments
Alternative development platforms for government use
Foundational Elements of C++ Programming
Core Functionality and Standard Input/Output Operations
- Outputting values and text strings via cout
- Inputting values via cin
- Controlling output formats with stream manipulators
Data Objects, Constants, and Reference Types
- Variable declaration and initialization procedures
- Integer and floating-point data type definitions
- Executing calculations and reporting results
- Leveraging references for performance optimization and constants for data integrity
Utilizing C++ 11/14 standard extensions
Function Definition and Invocation
- Argument passing mechanisms and value return protocols
- Comparative analysis of call-by-value, call-by-reference, and call-by-address methods
- Variable scope, lifetime, and initialization standards
Control Flow: Conditional Logic and Iteration
- Conditional branching using if/else statements
- Differentiating between bool and int logical representations
- Implementing sequential if/else structures
- Iterative processing with while and for loops
- Applying C++ range-based for loop syntax
- Application of equality, relational, and logical operators
Data Structures: Arrays, Pointers, and Strings
- Array and pointer declaration and usage guidelines
- String storage within character arrays
- Array element access via pointer arithmetic
- Distinguishing between pointers and references
- Utilizing the standard string class and associated functions
Class and Object Construction in C++
Encapsulation of Complex Data Types
- Public member functions and private data members
- Protected class member accessibility
- Constructor and destructor implementation
- Object self-reference through the this pointer
- Application of the scope resolution operator (::)
Object Declaration, Access, and Modification
- Management of object arrays, pointers to objects, and references to objects
- Execution of member functions
- Implementation of const member functions
- Passing objects by value versus by reference
Operator Overloading and Template Programming
- Streamlining class interface designs
- Function signature specifications
- Overloading the assignment (=) and insertion (\<\<) operators
- Implementation of friend functions and classes
- Explicit definition of copy and move constructors
- Mitigation strategies for default assignment and copy construction behaviors
- Leveraging Standard Template Library (STL) templates for scalable class hierarchies
Interface and Implementation Segregation
- Benefits of segregation for code reusability and maintenance
- Construction of header files and implementation source files
Class Extension Through Inheritance
Creation of Derived Classes from Base Classes
- Constructor and destructor sequences for derived objects
- Code reuse through incremental functionality extension
- Relationships between base and derived classes
Implementation of Polymorphic Behavior
- Overriding virtual base-class member functions in derived contexts
- Dynamic function resolution via base-class pointers and references at runtime
Dynamic Memory Management
- Memory allocation and deallocation using new and delete operators
- Error handling protocols utilizing try and catch blocks
- Strategies for preventing memory leaks
- Application of lambda expressions and smart pointers
Standards Compliance and Portability
- Compatibility with Windows and UNIX/Linux operating systems
- Adherence to ANSI/ISO C++ 11/14 standards and future standard evolution
Requirements
a:0:{}
Testimonials (3)
Initially, the trainer's pace seemed a bit too fast for me, but after offering the feedback during the training, he acknowledged it and slowed down the pace without sacrificing any of the lectures. Good rapport with the audience, very friendly and open for discussions.
Alexandru Ostafi - Siemens
Course - Advanced C++ : Practical workshop
Detailed explanation, re-iteration of points in a quite subtle way that really drove the knowledge home very well. Rod's willingness to double-check the odd obscure question that we rasied, to be sure that his answers were 100% right. Also, his interest in discussing the pros & cons of alternate coding styles so that we learnt not only how to use C++ in our intended way, but why it should be done that way.
Nick Dillon - cellxica Ltd
Course - Using C++ in Embedded Systems - Applying C++11/C++14
Experience sharing, it's teacher's know-how and valuable.