title
Please take a moment to fill out this form. We will get back to you as soon as possible.
All fields marked with an asterisk (*) are mandatory.
C++ for Non C Programmers
Course Description
Overview
This course is a comprehensive hands-on introduction to object-oriented programming in C++ for non-C programmers. Emphasis is placed on the features of C++ that support effective modeling of the problem domain and reuse of code. The course consists of two modules. The first module introduces the core C features of C++, with simplified input/output through I/O streams. The module begins with simple hands-on programming using C++ to do input, computation, and output. The C++ data types are covered, and simple if tests and loops are covered. C++ program structure is introduced. Pointers, addressing, and arrays are discussed. Structures and unions are covered. In the second module, object-oriented concepts are introduced. The C++ class construct is introduced and its key features elaborated step-by-step, providing full implementation of abstract data types. C++ memory management is discussed. Function and operator overloading and the use of references are covered. The scope and access control mechanisms of C++ are described. Inheritance is introduced. The use of virtual functions to implement polymorphism is discussed. Extensive programming examples and exercises are provided. The course is current to ANSI standard C++ and is designed so that it can be taught in any environment with an ANSI C++ compiler.Objectives
- Recognize the structure and flow of a C++ program
- Utilize primitive data types in C++ programs
- Apply C++ operators, expressions and flow control statements
- Manipulate functions, function parameters and return values
- Organize data by defining arrays and structures
- Employ pointers to manage variables and data structures
- Define classes, attributes and methods
- Use constructors and destructors to manage object creation
- Take advantage of inheritance to manage object oriented systems
- Define virtual and pure virtual functions
- Manage memory using new and delete
- Utilize casting at the primitive and object level
- Overload class methods as well as operators
- Cope with errors through exception handling
- Reference the Standard Template Library
Audience
Prerequisites
-
Knowledge of a programming language.
Topics
- Hello, World
- Compiling and Running
- C++ Program Components
- Another C++ Program (Preview)
- I/O in C++
- Exercise
- Answer
- Variables
- Expressions
- Assignment
- Using C++ as a Calculator
- Sample Program
- Input in C++
- Echo Program
- Lab 1
- Summary
- Data Types
- Strong Typing
- Typing in C++
- Conversions in C++
- Typing in Visual Basic
- Primitive C++ Data Types
- Signed and Unsigned
- Twos Complement
- C++ Integer Type Ranges
- IntegerRange.cpp
- Integer Constants
- Variables in C++
- Const Variables
- Preprocessor Macros
- Identifiers
- Floating Point Numbers
- Floating Point Data Types
- Calculations
- Integer Operations
- Increment and Decrement
- Precedence of Integer Operations
- Floating Point Operations
- op=
- Mixed Data Types
- Automatic Conversion
- Cast
- Math Library
- Lab 2
- Summary
- Bool Variables
- Bool Operations and Truth Tables
- Relational Operators
- If Tests
- Flow Chart
- If Test Example
- A Pitfall
- Bitwise Operators
- Bitwise Operator Truth Tables
- Short Circuit Evaluation
- Shifting
- Examples of Shifting
- Masking
- Lab 3
- Summary
- Loops
- Example
- While Loop
- Infinite Loops
- Flowcharting a While Loop
- Indenting and Curly Braces
- Accumulating a Total
- Total Using a Sentinel
- Counted Loops
- Total Using a Counter
- For Loops
- Total Using a For Loop (Up)
- Total Using a For Loop (Down)
- Comparing For and While Loops
- Variable Scope
- Loops and If Tests Together
- Nested If Statements
- Review of Statements
- Compound Statements
- Structured Programming
- Object-Oriented Programming
- Lab 4
- Summary
- Basics of Functions
- Example
- Function Prototypes and Type Checking
- Returning Value
- Argument Passing
- Pass-by-Reference
- Alternative to Pass-by-Reference
- External Variables
- Extern Example
- Block Structure
- Scope Rules
- Scope Example
- Header Files
- Preprocessor Directives
- Conditional Compilation
- Recursion
- Lab 5
- Summary
- Pointers and Addresses
- Pointers and Function Arguments
- Pointers and Arrays
- Array Example
- Address Arithmetic
- Pointer Math Example
- Dynamic Memory Management
- Using malloc and free
- Dynamic Memory Example
- Array of Pointers
- Strings
- String Functions
- Array of Strings
- Command Line Arguments
- Command Line Argument Demo
- Pointers to Functions (Optional)
- Lab 6
- Summary
- Fundamentals of Structures
- Structure Declaration
- Structures and Functions
- Structure Example
- Typedef
- Arrays of Structures
- Array of Structures Initialization
- Array of Structures Example
- Unions
- Lab 7
- Summary
- Object
- State and Behavior
- Abstraction
- Encapsulation
- Class and Instantiation
- Abstract Data Types
- Abstract Data Type Example
- Methods
- Invoking Methods
- Messages
- Class Inheritance
- Polymorphism
- Summary
- C Data Encapsulation Example
- Data Encapsulation in C
- The C++ Class
- Example of C++ Class Specification
- Structures and Classes in C++
- Implementation of a C++ Class
- Demo: Use of a C++ Class
- Fixed Example
- this Pointer
- Code Organization
- Scope Resolution Operator
- Abstract Data Types
- Test Programs for C++ Classes
- Lab 2A
- Lab 2B
- Summary
- Function Prototypes in C++
- Strong Type Checking
- Conversion of Parameters
- Inline Functions
- Inline Functions in Header Files
- Default Arguments
- Function Overloading
- Argument Matching
- Argument Matching through Promotion
- Match through Type Conversion
- Call By Value
- Lab 3
- Summary
- The Problem of Initialization
- Constructors and Initialization
- Constructor in Stack Class
- Object Creation and Destruction
- Destructors
- Multiple Constructors
- String Class Implementation
- String Class Demo
- Hidden Constructors
- Using a Default Argument
- Lab 4A
- Lab 4B
- Summary
- Why Is Memory Management Important in C++?
- Choices for an Object's Memory
- Typical Memory Layout
- Free Store Allocation
- new Operator
- Memory Allocation Errors
- new vs. malloc
- delete Operator
- Destructor (Review)
- Hiding Memory Management
- String Class Specification (Version 2)
- String Class Implementation
- String Class Demo
- String Class Bug
- String Class Demo Workaround
- String Class Exerciser Program
- Exerciser Program Sample Run
- Lab 5
- Summary
- Variables
- Argument Passing
- Call-by-Value
- Reference Declarations
- Call-by-Reference
- Copy Constructor
- Default Copy Constructor
- Bug in String Class
- Specification of String Class
- Implementation of String Class
- Test Program
- Output of Test Program
- Review of Constant Types
- Constants and Arguments
- Chains of Function Calls
- const Objects and Member Functions
- Lab 6A
- Lab 6B
- Lab 6C
- Summary
- Operator Overloading
- Operator Functions
- Concatenation in String Class – Demo
- Semantics of return
- Returning a Temporary Object
- Returning a Reference
- Initialization vs. Assignment
- Semantics of Assignment
- Assignment
- Assignment Bug
- Overloading =
- String Assignment Demo
- Review of this Pointer
- Type Conversions
- Conversion by Construction
- Conversion Examples
- Conversion Example Output
- Overloading Cast Operator
- Test Program
- Lab 7
- Summary
- Scoping in C++
- Block and Function Scope
- File and Global Scope
- Class Scope
- Constant Types and Scope
- Enumeration Types
- Enumeration Types and Class Scope
- :: for Global Data
- Static Class Members
- Initialization of Static Member
- Static Function Class Members
- Static Member Example
- Access Control
- Friend Functions
- Invoking Member and Friend Functions
- Implementing a Friend Function
- Efficiency and Friend Functions
- Lab 8
- Extra Credit
- Summary
- Inheritance Concept
- Inheritance Example
- Inheritance in C++
- Employee Example
- Employee Test Program
- Protected Members
- Base Class Initializer List
- Composition
- Member Initializer List
- Order of Initialization
- Inheritance vs. Composition
- Lab 9A
- Lab 9B
- Summary
- A Case for Polymorphism
- Dynamic Binding
- Pointer Conversion in Inheritance
- Polymorphism Using Dynamic Binding
- Virtual Function Specification
- Invoking Virtual Functions
- Virtual Functions Demo
- Vtable
- Virtual Destructors
- Abstract Class Using Pure Virtual Function
- Employee as an Abstract Class
- Heterogeneous Collections
- Polymorphic Code Example
- Lab 10
- Summary
Self-Paced Training Info
Learn at your own pace with anytime, anywhere training
- Same in-demand topics as instructor-led public and private classes.
- Standalone learning or supplemental reinforcement.
- e-Learning content varies by course and technology.
- View the Self-Paced version of this outline and what is included in the SPVC course.
- Learn more about e-Learning
Course Added To Shopping Cart
bla
bla
bla
bla
bla
bla
Self-Paced Training Terms & Conditions
Exam Terms & Conditions
Sorry, there are no classes that meet your criteria.
Please contact us to schedule a class.
STOP! Before You Leave
Save 0% on this course!
Take advantage of our online-only offer & save 0% on any course !
Promo Code skip0 will be applied to your registration
Purchase Information
title
Please take a moment to fill out this form. We will get back to you as soon as possible.
All fields marked with an asterisk (*) are mandatory.