course-deatils-thumbnail

C/C++

Course Code: 1040

Overview

C and C++ are the fundamental languages that help programmers every step of the way. Proficiency in these languages enables programmers to catch on to newer programming languages with a lot more ease. Cognixia’s C and C++ programming course focuses on teaching participants the basic as well as advanced concepts of C/C++. It covers basic programming techniques, use of various statements, pointers, dynamic memory allocation, object-oriented programming concepts, polymorphism, inheritance, encapsulation, I/O functions, GUI programming, and even network programming.

Schedule Classes

Looking for more sessions of this class?
Trivera

Course Delivery

This course is available in the following formats:

Live Classroom
Duration: 5 days

Live Virtual Classroom
Duration: 5 days

What You'll learn

  • Overview of C and C++
  • Functions in C/C++
  • Advantages of the Dynamic Memory Management
  • Managing Inheritances
  • Object oriented programming
  • Working with the String class
  • Program structures
  • Polymorphism and Overridden methods
  • Classes in C/C++
  • Streaming I/O

Outline

  • Implementing basic OO design
  • Implementing classes
  • New keywords in C++ 11,14,17
  • RAII – Modern memory management in C++ – overview
  • Copy vs Move semantics
  • Namespaces
  • General Purpose Functions
  • Function Templates
  • Template Parameters
  • Template Parameter Conversion
  • Function Template Problem
  • Generic Programming
  • General Purpose Classes
  • Class Templates
  • Class Template Instantiation
  • Non-Type Parameter
  • C++ Containers overview
  • Variadic Templates
  • The handle/body (Bridge) pattern
  • Using strings effectively
  • Smart Pointers
  • Move constructor in depth
  • Other <memory> features
  • Base Class Initializer List
  • Composition
  • Member Initialization List
  • Order of Initialization
  • Inheritance vs. Composition
  • Interfaces
  • Polymorphism
  • Chaining Constructors
  • Inheriting Constructors
  • Exception Handling
  • Try and catch
  • Exception Flow of Control
  • Context and Stack Unwinding
  • Handling Exceptions in best Context
  • Benefits of Exception Handling
  • Unhandled Exceptions
  • Clean Up
  • Multiple Catch Handlers
  • What is overload-able?
  • Why overload operators?
  • Functors
  • Unit testing – Quick Overview
  • Unit testing in C++
  • Introduction to <catch.hpp>
  • Overview
  • The IoC pattern
  • Dependency Injection
  • Functions as objects
  • IoC via interface
  • Functors
  • IoC with Functors
  • Implementing Functors
  • Function Pointers
  • IoC with Function Pointers
  • Lambda Expressions
  • Lambda Syntax
  • IoC with Lambdas
  • Runtime Type and Polymorphism
  • type_info Class
  • typeid Operator
  • Compiler Options
  • Safe Pointer Conversions
  • Dynamic Cast
  • New C++ Style Casts
  • Static Cast
  • Reinterpret Cast
  • Const Cast
  • Vectors
  • Vector.cpp
  • Vector Operations
  • Typedefs
  • Deques
  • deque as Stack
  • deque Functionality
  • Lists
  • Generic Programming
  • Tradeoff with Lists
  • List Memory Allocation
  • list Functionality
  • Associate Containers
  • Sets
  • Sets with User Defined Objects
  • Multisets (Bags)
  • Maps
  • Multimaps
  • Functional Programming with Containers
  • Pointers
  • Template Version
  • String Version
  • A Generalization of Pointers
  • STL Iterators
  • Input Iterators
  • Output Iterators
  • Forward Iterators
  • Bidirectional Iterators
  • Random Access Iterators
  • Overview Threads
  • Starting Threads
  • Managing threads
  • Overview of Tasks
  • Tasks
  • async
  • Future & Promise
View More

Prerequisites

There are no prerequisites for this course, however, having basic programming and computer knowledge would be advantageous.

Who Should Attend

Cognixia’s C/C++ training course is highly recommended for current and aspiring –

  • Software designers
  • Software developers
  • Software engineers
  • Android developers
  • Firmware developers
  • Verification engineers
  • Embedded software engineers
  • Openstack engineers

Interested in this course? Let’s connect!