C++/CLI Essentials Training

We offer private customized training for groups of 3 or more attendees.

Course Description

 
This two-day course is designed for the experienced C++ programmer to help you quickly come up to speed on the C++/CLI language. It is current to Visual Studio 2005 and .NET 2.0, which introduces important new features, such as generic types. This course concisely covers the essentials of programming using Microsoft's C++/CLI programming language. The course is practical, with many example programs and a progressively developed case study. The goal is to quickly bring you up to speed in writing C++/CLI programs.
Course Length: 2 Days
Course Tuition: $790 (US)

Prerequisites

The student should be an experienced application developer or architect with a good working knowledge of C++ and object-oriented programming.

Course Outline

 

.NET: What You Need to Know
Getting Started
.NET: What Is Really Happening
.NET Programming in a Nutshell
Viewing the Assembly
Viewing Intermediate Language
Understanding .NET
Visual Studio 2005
Visual C++ 2005 Express Edition
Creating a Console Application
Solution Explorer
Adding a C++ File
Using the Visual Studio Text Editor
IntelliSense
Build and Run the Project
Pausing the Output
Visual C++ 2005 and GUI Programs
.NET Documentation

C++/CLI Fundamentals
Hello, World
Compiling, Running (Command Line)
Program Structure
Namespaces
Variables
Input in C++/CLI
Classes in C++/CLI
InputWrapper Class
Input Wrapper Implementation
Control Structures
C++/CLI Operators
Types in C++/CLI
Simple Types
Types in System Namespace
Implicit Conversions
Explicit Conversions
Cast Notation
value struct
Uninitialized Variables
Enumeration Types
Reference Types
Class Types
Object
String
Copying Strings
StringBuilder Class
Classes and Value Classes
RHotel Ref Class
Copy Constructors in C++/CLI
VHotel Value Class
RaisePrice Methods
Value Class versus Ref Class
Arrays
One-Dimensional Arrays
System.Array
Jagged Arrays
Rectangular Arrays
for each for Arrays
Boxing and Unboxing
Output in C++/CLI
Formatting
Exceptions
System::Exception

Object-Oriented Programming in C++/CLI
Classic C++ Object Model
Object Lifetime in Classic Model
Object Lifetime in .NET Model
Object Lifetime in C++/CLI
Stack Allocation
C++/CLI Object-Oriented Features
Encapsulation and Properties
Using a Property
Indexed Properties
Using an Indexed Property
Trivial Properties
Account Class
Namespace
Constructors
Static Members
Inheritance in C++/CLI
New Version of Base Class
Features of the New Base Class
Derived Class
Overriding a Virtual Function
Fragile Base Class Problem
Abstract Ref Classes
Derived Classes
 
C++/CLI and the .NET Framework
Components and OO in C++/CLI
Interfaces in C++/CLI
Interface Inheritance
Programming with Interfaces
Implementing Interfaces
Using an Interface
Dynamic Interfaces
Account Interfaces
BasicAccount Class
Account Class
Interfaces in C++/CLI and COM
Resolving Ambiguity
Explicit Interface Implementation
System::Object
Collections
ArrayList
ArrayList Methods
Adding and Removing String
IEnumerable and IEnumerator
Using Enumerators
Collections of User-Defined Objects
Account Class
AccountList Class
Copy Semantics in C++/CLI
Deep Copy and Icloneable
Writing Generic Code
Using a Class of Object
Generic Types
Generic Syntax in C++/CLI
Generic Client Code
System::Collections::Generic

Delegates and Events
Overview of Delegates and Events
Callbacks and Delegates
Usage of Delegates
Declaring a Delegate
Defining a Method
Creating a Delegate Object
Calling a Delegate
Random Number Generation
A Random Array
Combining Delegate Objects
Account.h
DelegateAccount.cpp
Events
Events in C++/CLI and .NET
Client Side Event Code

Introduction to Windows Forms
Creating a Windows Forms App
Windows Forms Event Handling
Add Events for a Control
Events Documentation
Closing a Form
ListBox Control

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

C++ Programming Uses & Stats

C++ Programming is Used For:
Software Development Search Engines Operating Systems Video Games
Difficulty
Popularity
Year Created
1983
Pros
Popular: 
C/C++ is everywhere. In particular, they power more technologies than we give it credit for.
 
Flexible:
C++ is a multi-paradigm coding language. This means that it supports other styles such as procedural programming as well as Object-Oriented Programming. 
 
Fast: 
Because it is compiled, C++ gains a lot of speed. and is the language of choice for some applications as an example in the finance industry, where small differences in speed in high-frequency trading platforms can make the difference between a profit or a loss.
 
Job Opportunities: 
C++ developers are high in demand. There are over 14,000 C++ open positions on linkedIn alone. 
 
Similarity to Other Languages: 
Many other languages like C, C#, and Java have very similar syntax to C++, making them easy to learn for those that already know C++.
Cons
Difficult to Learn:  
C++ syntax is complex and the standard library is small, making C++ difficult to learn for someone with little programming experience. Although, it's believed to be more difficult to learn C++ than other languages, more accurately it probably takes a bigger investment of your time and effort to learn than some other languages. 
 
Strict Syntax: 
There is not much flexibility to the syntax, so it can be difficult to write code in a readable way.
 
Little Memory Management:
C++ does very little memory management, forcing the programmer to do most of it themselves.
 
Debugging Issues:
C++ can be difficult and complex to debug when it is used for web applications. 
C++ Programming Job Market
Average Salary
104000
Job Count
32816
Top Job Locations

New York City 
Seattle 
San Francisco 

Complimentary Skills to have along with C++ Programming

C/C++ are the grandfather of most other languages. Once you understand C syntax and (OOP) Object Oriented Programming, you're well on your way to greener pastures. 

Since the .NET development ecosystem spans a wide array of capabilities and tools, it is difficult for .NET developers to know which .NET development skills and training to pursue in order to increase their marketability — and earning potential.  For that reason, learning supplemental languages such as Java, JavaScript, Python, C/C++, and others is expected in today’s competitive skill-set driven playing field.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.