C ++ for C Programmers
Course Description
This C++ training course is designed for experienced C programmers. Using a combination of theory and exercises, this course will give delegates grounding in fundamental object oriented design principles and will show how these can be applied in practical situations.
Course Duration
4 days
Course Objectives
On completion of this course delegates will be able to:
• Build extensible, adaptable and reliable C++ applications
• Use object oriented concepts and modelling
• Use the Unified Modelling Language (UML) notations
• Use the C++ programming language to develop OO software systems
• Be familiar with operator overloading for user defined types
• Understand and design OO systems using inheritance, polymorphism and dynamic binding
• Understand exception handling mechanisms in C++
• Understand generic programming using C++ templates
• Build extensible, adaptable and reliable C++ applications
• Use object oriented concepts and modelling
• Use the Unified Modelling Language (UML) notations
• Use the C++ programming language to develop OO software systems
• Be familiar with operator overloading for user defined types
• Understand and design OO systems using inheritance, polymorphism and dynamic binding
• Understand exception handling mechanisms in C++
• Understand generic programming using C++ templates
Course Content
Introduction to C++
Intrinsic data types, operators, C++ storage, pointers, arrays, references, functions and function pointers, arrays and header files
Object Oriented Concepts
Introduction to important Object Oriented (OO) concepts including classes versus instances, coupling and cohesion, abstract versus concrete classes, inheritances, composition, association, polymorphic and dynamic binding, interface versus implementation, component-based development and introduction to the Unified Modelling Language (UML) as a tool for OO development
C++ Object Oriented Features
Classes and structs, definition versus implementation, encapsulation, access regions and information hiding, this pointer, member function definition, inline functions, friend functions and classes, constructors and destructors
Overview of Operator Overloading
Default operators, operator functions, overloading binary operators, overloading unary operators, friend and member functions, overloading assignment
Inheritance
Deriving classes, virtual functions, dynamic binding, private versus public inheritance, scope resolution, constructing derived classes, member initialisation list, multiple inheritance
Polymorphism
Declaring and using virtual functions and the need for virtual destructors, pure virtual functions and abstract classes
I/O Streams
C++ I/O library, C++ Stream Classes, Predefined Streams, Formatting I/O Operations, Manipulators, Overloading
<< and >> operators, File Streams, I/O Error Status, String Streams
Introduction to Templates
Parameterised types, template classes and functions, template instantiation, template arguments
Introduction to Exceptions
Purpose of exception handling, support for exception handling, grouping exceptions, resource management and termination semantics
Intrinsic data types, operators, C++ storage, pointers, arrays, references, functions and function pointers, arrays and header files
Object Oriented Concepts
Introduction to important Object Oriented (OO) concepts including classes versus instances, coupling and cohesion, abstract versus concrete classes, inheritances, composition, association, polymorphic and dynamic binding, interface versus implementation, component-based development and introduction to the Unified Modelling Language (UML) as a tool for OO development
C++ Object Oriented Features
Classes and structs, definition versus implementation, encapsulation, access regions and information hiding, this pointer, member function definition, inline functions, friend functions and classes, constructors and destructors
Overview of Operator Overloading
Default operators, operator functions, overloading binary operators, overloading unary operators, friend and member functions, overloading assignment
Inheritance
Deriving classes, virtual functions, dynamic binding, private versus public inheritance, scope resolution, constructing derived classes, member initialisation list, multiple inheritance
Polymorphism
Declaring and using virtual functions and the need for virtual destructors, pure virtual functions and abstract classes
I/O Streams
C++ I/O library, C++ Stream Classes, Predefined Streams, Formatting I/O Operations, Manipulators, Overloading
<< and >> operators, File Streams, I/O Error Status, String Streams
Introduction to Templates
Parameterised types, template classes and functions, template instantiation, template arguments
Introduction to Exceptions
Purpose of exception handling, support for exception handling, grouping exceptions, resource management and termination semantics
Who should attend?
Experienced C programmers wishing to learn the fundamentals of object-oriented design using C++
Pre-requisites
Candidates must have a solid understanding of the C programming language and the underlying syntax. Candidates should also have an appreciation of object oriented design principles.
Further Information
Those who have not programmed extensively in C should not attend this course. These candidates should consider the course from c2, entitled “C++ Programming Fundamentals”.