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.
|