💻
Programming Concept
  • 👨‍🔬About Me
  • 📗C++ STL Concept 2023
    • 📖STL in CPP ( Part I)
    • 📖STL in CPP ( Part II)
    • 📖STL in CPP ( Part III )
    • 📖STL in CPP ( Part IV )
    • 📖STL in CPP ( Part V )
    • 📖STL in CPP ( Part VI )
    • 📖STL in CPP ( Part VII )
  • ✏️Pointers in C / C++
    • 📖Pointers in details
  • 📘Strings in CPP 2023
  • 🕞Thread in C++ 2023
  • 📓Smart Pointer in C++ 2023
  • Basic C++ Topics
    • 💼Type Casting in C++ 2023
  • 💻Advanced C++ Programming
    • 🎓Topics (Syllabus)
    • 🧑‍🎓Inheritance and Polymorphism
    • 🖊️Exception Handling
    • 🏃Runtime Type Information
    • 📔An Overview of Templates
    • 📡Template in C++
  • 💻Embedded Linux
    • 🖥️Embedded Linux OS
      • Build Yocto Project Step By Step
      • How to install apt-get to the Yocto Project image
      • Installing gcc/g++ toolchain in yocto project
      • Installing GDB in yocto project
      • Installing ssh-server-dropbear for embedded linux in yocto project
      • Add Python To A Build
      • Add Boost To A Build
      • Adding Valgrind To Build
      • How To Add A Custom App To A Yocto Build
      • Raspberry Pi
    • 📶Communication Protocols
      • ✏️Working With I2C using c++
      • 📔SPI Implementation with source code in C++
      • 📓Linux Serial Ports Using C/C++
      • 🖱️UART
      • 🖨️Universal GPIO Access
  • 🧑‍💻QT QML
    • 📘QT QML Concept 2023
      • Why Qt Framework and QML
      • Sqlite3 for qtquick application
      • How To Install sqlite3 in windows 11 || Windows 10
      • Signals and Slots in Qt QML
      • Working with Signals and Slots in QML
      • Sorting QML ListModels
      • ListView In QML With Section Delegate
      • Registration of custom enum in QML
      • Registering a QML Type as a Singleton object
      • Using enumerations in QML without C ++
      • Registering a Singleton object to use “Static” methods in QML
      • Connecting JavaScript files to other JavaScript files in a Qt / QML project
      • Positioning in Qt QML with anchors
      • TextInput validators in Qt Qml
      • Qt Qml Abstract Item Model using C++
      • Qt QML List Model
      • How to Register your C++ Class as a QML Type
      • Jabra Speaker Connect Qt Project
      • Qt | One article summarizing QObject
  • ▶️QT Concept
    • ℹ️Icon button
    • 💻Register QML Singletone in CP
Powered by GitBook
On this page

Was this helpful?

  1. Advanced C++ Programming

Topics (Syllabus)

C++ programmers who want to learn more advanced features of the language.

This comprehensive course consists of three modules. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates. I/O streams, and practical issues of C++ programming, such as reliability, testing, efficiency and interfacing to C. This material is covered as needed depending on the background of the students.

The second module covers more advanced topics. Advanced issues of inheritance and polymorphism are covered. Principles of effective class design, including the orthodox canonical form, use of composition, templates and interface inheritance. The course covers exception handling and run-time type information (RTTI). Multiple inheritance is covered, including the complications that are introduced by this powerful feature. Advanced applications of C++ concepts are studied, including smart pointers and reference counting.

The third module introduces the Standard Template Library (STL). The main components of data structures, algorithms and iterators are covered. Illustrations are provided of a number of important containers, such as vectors, stacks, queues, lists and sets. Extensive programming examples and exercises are provided. A number of progressively developed case studies are used to illustrate object oriented programming techniques and to give the student practical experience in putting together features of C++ learned in the course.

This Advanced C++ Programming training course is a comprehensive course consists of three modules. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates. I/O streams, and practical issues of C++ programming, such as reliability, testing, efficiency and interfacing to C. This material is covered as needed depending on the background of the students.

A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates. I/O streams, and practical issues of C++ programming, such as reliability, testing, efficiency and interfacing to C. The second module covers advanced C++ Programming issues of inheritance and polymorphism and the principles of effective class design. The third module introduces the Standard Template Library (STL).

Audience: C++ programmers who want to learn more advanced features of the language.

Topics Covered in Advanced C++ Programming Course:

Inheritance and Polymorphism

  • Inheritance Concept

  • Inheritance in C++

  • Protected Members

  • Base Class Initializer List

  • Composition

  • Member Initialization List

  • Order of Initialization

  • Inheritance vs. Composition

  • Summary – Inheritance

  • A Case for Polymorphism

  • Dynamic Binding

  • Pointer Conversion in Inheritance

  • Polymorphism Using Dynamic Binding

  • Virtual Function Specification

  • Invoking Virtual Functions

  • VTable

  • Virtual Destructors

  • Abstract Class Using Pure Virtual Function

  • Employee as an Abstract Class

  • Heterogeneous Collections

  • Summary – Polymorphism

ANSI C++ Library

  • ANSI C++ Library

  • Hello ANSI C++

  • Namespaces

  • ANSI C++ String Class

  • Templates

Templates

  • General Purpose Functions

  • Macros

  • Function Templates

  • Template Parameters

  • Template Parameter Conversion

  • Function Template Problem

  • Generic Programming

  • General Purpose Classes

  • Class Templates

  • Array Class Implementation (array.h)

  • Using the Array Template

  • Template Parameters

  • Class Template Instantiation

  • Non Type Parameter Conversion

  • Standard Template Library

  • STL Components

  • Generic Programming

  • STL Elements of a Simple Program

  • Simple STL Program

  • Map Container

Input/Output in C+

  • Input/Output in C++

  • Built-in Stream Objects

  • Output Operator <<

  • Input Operator >>

  • Character Input

  • String Input

  • Formatted I/O

  • Streams Hierarchy (Simplified)

  • File I/O

  • File Opening

  • Integer File Copy

  • Character File Copy

  • Overloading Stream Operators

  • Implementing Overloaded Stream Operators

Practical Aspects of C++ Programming

  • Interfacing C++ to Other Languages

  • Calling C from C++

  • _cplusplus Macro

  • Calling C++ from C

  • Interface Module for Stack Class

  • Namespace Collisions

  • ANSI Namespace

  • Reliability Philosophies of Languages

  • Prototypes and Type Checking

  • Constant Types

  • Access Control in C++

  • Reviews and Inspections

  • Inspections and C++

  • Testing Strategies for C++

  • Performance Considerations

  • Class Libraries

Advanced Polymorphism and Inheritance

  • Good Class Design

  • String Class

  • Public Inheritance

  • Public Inheritance Problems

  • Inheritance and Semantics

  • Private Inheritance

  • Composition

  • Composition vs. Private Inheritance

  • Templates vs. Inheritance

  • Protected Inheritance

  • Implementation Encapsulation

  • Interface Inheritance

Exception Handling

  • 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

Runtime Type Information

  • 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

Inheritance Hierarchies and Multiple Inheritance

  • Class Hierarchy in Smalltalk

  • Smalltalk Class Hierarchy (Simplified)

  • Collection Classers

  • Multiple Inheritance Solution

  • Basic Derivation

  • Ambiguities in Multiple Inheritance

  • Resolving Ambiguity

  • Duplicate Subobjects

  • Virtual Base Classes

Applications of C++ Concepts

  • Orthodox Canonical Form (Review)

  • Object Validation

  • String Class

  • Smart Strings

  • Reference Counting

  • Reference Counting Rules

  • Smart String Pointer

  • Generic Smart Pointers

  • Constructing Smart Pointers

  • Smart Pointer Difficulties

An Overview of Templates

  • Templates

  • Overloading Functions

  • Template Functions

  • Specializing a Template Function

  • Disambiguation under Specialization

  • Template Classes

  • An Array Template Class

  • Instantiating a Template Class Object

  • Friends of Template Classes

  • Templates with Multiple Type Parameters

  • Non Class-type Parameters for Template Classes

  • Comments Regarding Templates

  • Templates and Inheritance

Overview of STL

  • Perspective

  • History and Evolution

  • New Features

  • The Standard Template Library

  • Generic Programming

  • Design Goals

  • Header Files

  • STL Components

  • Containers

  • Algorithms

  • Iterators

  • Compiling STL Code

Examples from STL

  • vector

  • Vector.cpp

  • list

  • List.cpp

  • map

  • Map.cpp

  • set

  • Set.cpp

  • multiset

  • Multiset.cpp

  • find

  • FindVector.cpp

  • find – list

  • merge

  • Overriding the Default Comparison

  • Iterators

  • Iterators.cpp

  • Functions

  • Functions.cpp

  • Function Objects

  • FunctionObject.cpp

STL Containers

  • 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

STL Iterators

  • Pointers

  • Template Version

  • String Version

  • A Generalization of Pointers

  • STL Iterators

  • Input Iterators

  • Output Iterators

  • Forward Iterators

  • Bidirectional Iterators

  • Random Access Iterators

PreviousType Casting in C++ 2023NextInheritance and Polymorphism

Last updated 1 year ago

Was this helpful?

💻
🎓