Email Us   Phone : 503-259-0312   
  Home    |    Instructor-led Training    |    Self-Paced Learning    |    Online Training     


Contact Us   -   Why Choose Wintrac   -   Clients    

Courses
ADA
Adobe
Agile
AJAX
Android
Apache
AutoCAD
Big Data
Business Analysis
Business Intelligence
Business Objects
Business Skills
C++ programming
Cisco
Citrix
Cloud Computing
COBOL
Cognos
ColdFusion
COM/COM+
CompTIA
CORBA
CRM
Crystal Reports
Datawarehousing
DB2
Desktop Application Software
DNS
Embedded Systems
Google Web Toolkit (GWT)
IPhone
ITIL
Java
JBoss
LDAP
Leadership Development
Lotus
Machine learning/AI
Macintosh
Mainframe programming
Microsoft technologies
Mobile
MultiMedia and design
.NET
NetApp
Networking
New Manager Development
Object oriented analysis and design
OpenVMS
Oracle
Oracle VM
Perl
PHP
PowerBuilder
Professional Soft Skills Workshops
Project Management
Rational
Ruby
Sales Performance
SAP
SAS
Security
SharePoint
SOA
Software quality and tools
SQL Server
Sybase
Symantec
Telecommunications
Teradata
Tivoli
Tomcat
Unix/Linux/Solaris/AIX/
HP-UX
Visual Basic
Visual Foxpro
VMware
Web Development
WebLogic
WebSphere
Websphere MQ (MQSeries)
Windows programming
XML
XML Web Services
Other
C++ Programming for C-Programmers
C++ programming Training Overview

This course is a comprehensive hands-on introduction to object oriented programming in C++ for 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. In the first 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. The second module presents intermediate topics. The ANSI C++ Standard Library is covered, including namespaces, the new header files and basic string class. Templates are covered, including an introduction to the Standard Template Library (STL). There is a chapter on I/O streams, including formatting and file I/O. Practical issues of C++ programming, such as reliability, testing, efficiency and interfacing to C, are discussed. The course introduces newer features of C++ such as exceptions, runtime type information (RTTI), and the new C++ cast syntax. Extensive programming examples and exercises are provided. The course is designed so that it can be taught in any environment with an ANSI C++ compiler.

C++ programming Training Audience

C programmers who are moving to object oriented programming in C++.

C++ programming Training Prerequisites

A good working knowledge of C programming.

C++ programming Training Course duration

5 Days

C++ programming Training Course outline

Concepts of Object-Oriented Programming
  • Object
  • State and Behavior
  • Abstraction
  • Encapsulation
  • Class and Instantiation
  • Abstract Data Types
  • Methods
  • Invoking Methods
  • Messages
  • Class Inheritance
  • Polymorphism
  • Classes in C++
  • Data Encapsulation in C
  • The C++ Class
  • Structures and Class in C++
  • Implementation of a C++ Class
  • this Pointer
  • Code Organization
  • Scope Resolution Operator
  • Abstract Data Types
  • Test Programs for C++ Classes
  • Functions in C++
  • 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
  • Constructors and Destructors
  • The Problem of Initialization
  • Constructors and Initialization
  • Constructor in Stack Class
  • Object Creation and Destruction
  • Destructors
  • Multiple Constructors
  • String Class Implementation
  • Hidden Constructors
  • Using a Default Argument
  • Memory Management in C++
  • 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 Bug
  • References and Argument Passing in C++
  • 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 Functions Calls
  • const Objects and Member Functions
  • Operator Overloading, Initialization, and Assignment
  • Operator Overloading
  • Operator Functions
  • Semantics of return
  • Returning a Temporary Object
  • Returning a Reference
  • Initialization vs. Assignment
  • Semantics of Assignment
  • Assignment
  • Assignment Bug
  • Overloading =
  • Review of this Pointer
  • Type Conversions
  • Conversion by Construction
  • Overloading Cast Operator
  • Test Program
  • Scope and Access Control
  • 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
  • Access Control
  • Friend Functions
  • Invoking Member and Friend Functions
  • Implementing a Friend Function
  • Efficiency and Friend Functions
  • Introduction to Inheritance
  • Inheritance Concept
  • Inheritance in C++
  • Employee Test Program
  • Protected Members
  • Best Class Initializer List
  • Composition
  • Member Initializer List
  • Order of Initialization
  • Inheritance vs. Composition
  • Polymorphism and Virtual Functions
  • 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
  • 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
  • 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
  • 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
  • Exception Handling
  • Exception Handling
  • try and catch
  • Exception Flow of Control
  • Context and Stack Unwinding
  • Handling Exception 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

  •  
    About us
    Contact us
    Careers at Wintrac
    Our Clients
    Why Wintrac


    Register for a free training CD-ROM drawing
    Refer a client or instructor and earn $$$


    Wintrac Inc.
    16523 SW McGwire Ct.
    Beaverton OR 97007
     
    © Wintrac, Inc. All rights reserved.                                                                               Site Map   |   Terms of Use   |   Privacy Policy
    Copyright © SB