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