Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
C++ for Java Programmers

Course Curriculum Angelika LangerCourse Curriculum Angelika Langer  
HOME

SEMINARS
  GENERAL INFO
  SCHEDULE
  REGISTRATION
  
  JAVA
    EFFECTIVE JAVA
    CONCURRENCY
    PERFORMANCE
    JAVA 5.0 
    GENERICS
    JAVA 1.3 => 6.0
    JAVA FOR C++
    JAVA INTRO

  C++
    RELIABLE C++
    EFFECTIVE STL
    TEMPLATES
    EXCEPTIONS
    IOSTREAMS
    C++ FOR C
    C++ FOR JAVA
    C++ INTRO   
 

TALKS
ARTICLES 
BOOKS 
LINKS 
IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
C++ for Java Programmers
COURSE DESCRIPTION

This course is designed to address the needs of Java programmers who want to learn C++. The two languages have much of their syntax in common, but the semantics of seemingly comparable language constructs can differ considerably.  In general, C++ is the more challenging language in the sense that it has significantly more language features than Java, which makes programming in C++ enormously flexibile. At the same time it requires that a programmer thoroughly understands all the choices he has and knows their trade-offs and pitfalls .

In this seminar you will find everything that can be expected of an introduction to C++:  

Full covarage all C++ language features.
Overview of the C++ standard library.
Best practice C++ programming idioms.
In addition, the course aims to spot some of the trickier, less obvious issues, which are particularly challenging for Java programmers since Java has no corresponding language features.  Some highlights are:
 
Memory Management
In Java the garbage collector takes over the chores of memory release.  In C++ the programmer is responsible for correct memory and resource release. We will carefully look into pointers, destructors, object lifetime and memory leaks. 
Value vs. Reference Types
In Java the use of reference types prevails, whereas in C++ value types are considered most natural. We explore proper implementation of copy  and comparison operations for value types and will also discuss how to avoid performance overhead due to unwanted copying.
Type Conversions
Java does not perform a lot of type conversions implicitly.  Instead, you have to trigger a conversion explicitly using a cast expression.  The C++ compiler, in contrast, performs countless implicit conversions.  It is important to understand the impact of these silent conversions.
 
Prerequisite Skills: Basic Java knowledge including practical experience 
Duration: 5 days 
Format: Lectures, discussions, and hands-on labs

To fully benefit from this fast-paced and demanding course, you must have considerable Java programming experience, including working knowledge of object-oriented principles such as inheritance, classes, objects, value and reference semantics and polymorphism. 
 

PERFORMANCE OBJECTIVES
Gain an in-depth view of C++
Understand pointers and memory management issues in C++
Get aware of common pitfalls
Know common C++ programming idioms
Acquaint yourself with C++ standard library

BUSINESS OBJECTIVES
Equip your software professional with excellent C++ skills 
Increase the reliability of your C++ programs
Make your software flexible and maintainable
Build high-quality products in C++

The course is designed and conducted by Angelika Langer and backed by years of experience in teaching  C++ and Java related topics and more than a decade of real-world experience in industrial software development. Angelika Langer is a freelance trainer/consultant in the area of object-oriented software development in C++ and Java. She is an observing member of the ANSI C++ standards committee since 1993, columnist of C++ Report, C/C++ Users Journal, JavaSPEKTRUM, author of "Standard C++IOStreams and Locales", and a recognized speaker at OO conferences. 


 


 
COURSE OVERVIEW


 

 
Fundamental Differences
  • Compilation Model and Linkage
  • Arrays and Pointers
  • Lifetime of Objects (Static, Heap, Local, Temporary Objects)
  • Memory Management (Constructors & Destructors)
  • Value and Reference Types
  • Copying and Comparison
  • Argument Passing
  • Type Conversions (Implicit, Explicit, User-Defined Conversions)
  • Constness (Immutable Objects and Inspecting Functions)
Minor Differences
  • Free Functions and Member Functions
  • Virtual  and Non-Virtual Functions
  • Public and Private Inheritance
  • Function Overload Resolution and Name Lookup
  • Exception Handling
  • Runtime Type Information
C++ Language Features
  • Structures and Unions
  • Operator Overloading
  • Multiple Inheritance
  • Friends
  • Namespaces
  • Function Pointers and Functors
  • Class and Function Templates
  • Member Templates and Template Specialization
 C++ Standard Library
  • Containers, Iterators and Algorithms
  • Strings and Streams
  • Smart Pointers and Reference Counting
 

 
 
TRAINING LOCATIONS

Open Enrollment
Public courses are conducted in collaboration with partner companies worldwide. Presentation language is English or German, depending on the location. For further information go to GENERAL INFO.
On-Site Training
Courses can be held at your company site. Duration and content will be tailored to your specific needs and prerequisites. Presentation language is English or German.  For further information go to GENERAL INFO.
For information regarding training locations and the current schedule of public courses go to SCHEDULE. For further information or enrollment send me EMAIL or use the REGISTRATION form.
Schedule
To check for availability, price and other details send me EMAIL or use the REGISTRATION form.

 
© Copyright 1995-2003 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Courses/C++ForJavaProgrammers.htm  last update: 18 Oct 2003