C Plus Plus (C++)

C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation.

It was designed with a bias toward system programming and embedded, resource-constrained and large systems, with performance, efficiency and flexibility of use as its design highlights. C++ has also been found useful in many other contexts, with key strengths being software infrastructure and resource-constrained applications, including desktop applications, servers (e.g. e-commerce, Web search or SQL servers), and performance-critical applications (e.g. telephone switches or space probes). C++ is a compiled language, with implementations of it available on many platforms. Many vendors provide C++ compilers, including the Free Software Foundation, Microsoft, Intel, and IBM.


What Will I Learn ?

  • Working within an engaging, hands-on learning environment, attendees will explore:
  • Writing procedural programs using C++
  • Using private, public and protected keywords to control access to class members
  • Defining a class in C++
  • Writing constructors and destructors
  • Writing classes with const and static class members
  • Overloading operators
  • Implementing polymorphic methods in programs
  • Writing programs using file I/O and string streams
  • Using manipulators and stream flags to format output
  • Using the keyword template to write generic functions and classes
  • Writing programs that use generic classes and functions
  • Writing programs that use algorithms and containers of the Standard Library
  • Using algorithms and containers of the Standard Library to manipulate string data
  • Using try() blocks to trap exceptions
  • Using catch() blocks to handle exceptions
  • Defining exceptions and using throw to trigger them

Prerequisite Knowledge

Practical hands-on prior programming experience and knowledge is required.

Who can benefits ?

This is an introductory-level C++ programming course designed for developers with experience programming in C or other languages.

Opportunity Scope

Mentor shall discuss on classroom.

Modules / Chapter

Module 1: 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

Module 2: ANSI C++ Library

  • Hello ANSI C++
  • Namespaces
  • ANSI C++ String Class

Module 3: 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

Module 4: 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

Module 5: 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

Module 6: 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 EncapsulationInterface Inheritance

Module 7: 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 UpMultiple Catch Handlers

Module 8: 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

Module 9: 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

Module 10: 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

Module 11: An Overview of 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

Module 12: 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

Module 13: 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

Module 14: 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

Module 15: STL Iterators

  • Pointers
  • Template Version
  • String Version
  • A Generalization of Pointers
  • STL Iterators
  • Input Iterators
  • Output Iterators
  • Forward Iterators
  • Bidirectional Iterators
  • Random Access Iterators

Enquiry Form

Required fields are marked (*).

(Max 350 words only)

Contact Information

  • Address

    Anamnagar - 32 Kathmandu, Nepal

  • Email

    info@labanepal.com

  • Phone

    +977-1-4102721, 4102722, 4244804

  • Opening Hours

    10 AM - 5 PM

Registration Form

Required fields are marked (*).

(Max 350 words only)

Contact Information

  • Address

    Anamnagar - 32 Kathmandu, Nepal

  • Email

    info@labanepal.com

  • Phone

    +977-1-4102721, 4102722, 4244804

  • Opening Hours

    10 AM - 5 PM

newsletter

Sign Up for News and Offers

Subscribe for the latest news and great deals we offer