C++ Programming for Non-C Programming

C++ Programming for Non-C Programming

Duration: 5 Days

Description

This hands-on course is a comprehensive introduction to object-oriented programming in C++ for programmers coming from non-C backgrounds. Across 17 modules, you’ll learn the C++ features that support clean modeling of the problem domain and effective code reuse, working through extensive programming examples and exercises. The course is current to the ANSI C++ standard and runs in any environment with an ANSI C++ compiler.

Audience

Designed for programmers new to C++ who don’t have a C background. Ideal for aspiring software developers, computer science students, or professionals transitioning from languages like Python, Java, or JavaScript. The curriculum builds foundational programming skills before advancing into object-oriented principles, so you come away able to write efficient, structured, modern C++ — whether you’re pursuing a career change or adding a high-performance language to your toolkit.

Objectives

  • Learn the core C features with C++
  • Become acquainted with the basic concepts of object-oriented programming
  • Acquire an introductory knowledge of C++ programming

Prerequisites

Participants should have a general understanding of computer operation and logical problem-solving. Prior programming experience is helpful but not required, as the course introduces programming fundamentals from the ground up. Familiarity with any high-level language concepts (like variables, loops, and basic conditionals) will ease the learning curve but is not mandatory.

Course Outline

Module 1: First C++ Programs

  • Hello, World
  • Program Structure
  • Output in C++
  • Variables and Expressions
  • Calculations Using C++
  • Input in C++

Module 2: Data Types and Operators

  • Strong Typing
  • Integer Data Types
  • Floating Point
  • Conversions Between Types
  • Arithmetic Operators
  • Doing Math in C++

Module 3: Logical and Bit Operations

  • Bool
  • Logical and Relational Operators
  • If Tests
  • Bitwise Operators
  • Shifting and Masking

Module 4: Loops and Structured Programming

  • While Loops
  • Quitting Infinite Loops
  • Curly Braces and Indenting
  • Sentinels and Counters
  • For Loops
  • Loops and If Tests Together
  • Nested If Statements
  • Structured Programming

Module 5: Functions and Program Structure

  • Function Prototypes and Type Checking
  • Returning Value and Argument Passing
  • Pass-by-Reference
  • External Variables
  • Block Structure
  • Scope
  • Header Files
  • Preprocessor

Module 6: Pointers and Arrays

  • Pointers and Addresses
  • Pointers and Function Arguments
  • Address Arithmetic
  • Pointers and Arrays
  • Arrays of Pointers
  • Command Line Arguments
  • Pointers to Functions
  • Strings

Module 7: Structures and Unions

  • Structures
  • Structures and Functions
  • Arrays of Structures
  • Unions

Module 8: Concepts of Object-Oriented Programming

  • Objects
  • Information Hiding and Encapsulation
  • Abstract Data Types
  • Methods and Messages
  • Classes
  • Class Inheritance
  • Polymorphism

Module 9: Classes in C++

  • Data Encapsulation in C and C++
  • Definition of C++ Classes
  • Member Data and Functions
  • this Pointer
  • Abstract Data Types
  • Organizing Code for Classes

Module 10: Functions in C++

  • Function Prototypes and Type Checking
  • Conversion of Parameters
  • Default Arguments
  • Inline Functions
  • Function Overloading

Module 11: Constructors and Destructors

  • Constructors and Initializations
  • Object Creation and Destruction
  • Destructors
  • Multiple Constructors in a Class
  • Hidden Constructors

Module 12: Memory Management in C++

  • Static, Automatic, and Heap Memory
  • New and Delete
  • Handling Details of Memory Management in a Class
  • Implementing a Dynamic String Class

Module 13: References and Argument Passing in C++

  • Call by Value
  • Reference Declarations
  • Reference Arguments
  • Copy Constructor
  • Constant Arguments and Functions

Module 14: Operator Overloading, Initialization, and Assignment

  • Operator Overloading
  • Semantics of Assignment
  • Initialization vs. Assignment
  • Overloading Assignment
  • Type Conversions

Module 15: Scope and Access Control

  • Scope in C++
  • Friend Functions
  • Const and Enumeration Types
  • Static Members

Module 16: Introduction to Inheritance

  • Inheritance for Modeling and Resue
  • Class Derivation
  • Access Control
  • Base Class Initialization
  • Composition
  • Initializing Class Type Members

Module 17: Polymorphism and Virtual Functions

  • Virtual Functions and Dynamic Binding
  • Polymorphism in C++
  • Pointer Conversion
  • Virtual Destructors
  • Abstract Classes and Pure Virtual Functions