Banner

C/C++

Live Classroom
Duration: 5 days
Live Virtual Classroom
Duration: 5 days
Pattern figure

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.

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

Curriculum

  • 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 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

  • 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
waves
Ripple wave

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

Prerequisites

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

Interested in this Course?

    Ready to recode your DNA for GenAI?
    Discover how Cognixia can help.

    Get in Touch
    Pattern figure
    Ripple wave