Length: 3 days Cost: £1188 Course description - see below or view PDF Check course dates - click here Booking information - click here
Course Detail
Course Description:
This course introduces the C++ language for general use. It
is a subset of our more extensive 5 day course C++-501:
C++ for Embedded Developers.
The C++ language is covered in depth. Fears of the use of
this large language are quelled by the coverage of memory
and performance issues. This course will clearly
demonstrate both the strengths and weaknesses of C++
versus C. Good programming practise is considered
throughout this highly practical course.
The course is suitable for programmers who do not need to
have in-depth knowledge of embedded programming
concepts or concurrency issues. The course is also useful for
Hardware Engineers needing to learn C++, for example to
move onto using SystemC.
It is assumed delegates have a working knowledge of the C
programming language.
Overview:
A 3 day course covering C++ in general. Fifty percent of the
course is spent on practical work.
Course Objectives:
• To provide an understanding of the essentials of the C++
programming language.
• To give you practical experience of writing C++ for real
systems.
• To give you the confidence to apply these new concepts
to your next project.
Delegates will learn:
• The core C++ syntax and semantics
• About memory and performance issues associated with
C++
Pre-requisites:
• A working knowledge of C
Who Should Attend?
• Programmers who are embarking on a project using C++
for the first time.
• Developers currently reluctant to move to C++ from C as
they believe it poses too great an overhead.
• Programmers needing to know C++ to interface to off-the
shelf libraries and development tools.
• Hardware Engineers needing to learn C++, for example
to move onto using SystemC
Duration:
Three days.
Course Materials:
• Delegate Handbook
Related Courses:
• OO-503 Real-Time Systems Design with UML 2.0
• OO-301 Applying Real-Time UML
• C++-402 Advanced C++
• C++-501 C++ for Embedded Developers
• RTOS-201 Fundamentals of Real-time Operating
Systems
Course Workshop:
All exercises are PC based using the Eclipse CDT
development environment and the GCC compiler.
Approximately 50% of the course is given over to practical
work.
Course Outline:
From C to C++
- Non object-oriented C++
enhancements to basic C
- Conveniences of C++ over and above
C Introduction to Object Oriented
(OO) Principles
- Key characteristics of OO
development
- OO techniques and the software
development process Introduction to Classes
- Classes & class instances
- Methods
- Constructors & destructors More on Classes
- Inlining member functions
- const member functions
- static class members and functions
- arrays of classes
- implementing object relationships Inheritance
- Building class hierarchies
- Dynamic binding for class methods,
virtual functions
- Polymorphism Multiple Inheritance (MI)
- MI and interfaces Functions and Operators
- Class defined conversions
- Overloading and function selection
- Friend functions
- Overloading operators
- Dynamic memory allocation revisited Exception Handling
- What are exceptions?
- Throwing an exception
- The try block
- Catching an exception
- Rethrowing exceptions
- Catch all handlers
- Exception specifications Templates
- Introducing parameterised types and
functions
- Function templates
- Class templates The Standard Library
- Introduction to the Standard Template
Library Software Structuring
- Structuring large scale software
systems
- Separate implementation from
interface header files
- Dealing with name conflicts
- Linking with other languages