Programming with C++
Course
Online
Description
-
Type
Course
-
Methodology
Online
C++ is one of the most widely-used programming language for implementing object-oriented systems. The C++ language is based on the popular C language. The C++ Programming course provides thorough practical and theoretical coverage of the C++ language for the experienced application programmer who has little or no recent C experience. It helps eliminate misconceptions and poor programming practices that can cause so many problems, by focusing on features of the language and standard library that enforce good practice and encourage clear and robust code. This is a highly practical course which uses a mix of tuition and practical sessions for each technical chapter designed to reinforce the C++ syntax and object-oriented programming techniques covered in the course. Delegates with Java or C# experience should attend the C++ Programming for Java and C# Developers course instead. Delegates who are relatively new to programming or who do not have experience in a modern programming environment, for instance on mainframe systems, should first attend the Programming Foundation course and follow it up with some practical work. Learning Objectives Understand the key concepts and vocabulary of object orientationUse fundamental and composite data typesDefine and use classesWrite class member functionsUse pointers and dynamic memoryUse constructors and destructorsWrite code that is efficient and robustBuild new classes from other classes using aggregation and associationBuild new classes from other classes using inheritanceUse container classes, including template classesUse operator overloadingDesign and write code with polymorphic behaviour
About this course
Professional programming experience is assumed. C programming experience is not required.
Reviews
Subjects
- Programming
- Systems
- Object-oriented training
- C language
- C programming
- Java
- Object oriented training
Course programme
Course Introduction
- Course Prerequisites
- Course Objectives
- Course Delivery
- Course Practicals
- Course Structure
C++ Programs
- Key features of C++
- Identifiers and keywords
- Simple declarations, expressions and statements
- Basic I/O
- Layout
- Guidelines
Fundamental Data Types
- Built-in types
- Integer numbers
- Floating Point numbers
- Characters
- Booleans
- Assignment
- Compound Assignment
- Increment and Decrement
- Defining constants
- Type conversions
Composite Data Types
- Defining and using enumerations
- Built-in arrays and their limitations
- Using the vector class
- Built-in strings as character arrays
- Using the string class
- Defining and using structures
Control Flow
- Simple and compound statements
- Selection with if else and switch statements
- Conditional expressions
- Looping with while and for statements
Functions
- Declaring, calling and defining functions
- Overloading
- Default arguments
- Scope issues
- Pass by copy
- Pass by reference
- Inline functions
- Header files and source files
- Pitfalls and guidelines
Object Concepts
- Object behaviour
- Object state
- Object identity, Object-oriented programming
- Classes
- Encapsulation
Using Classes
- Associating functionality with data
- Class definitions
- Public and private
- Queries functions and modifier functions
- Struct vs class
Pointers
- Concepts and syntax
- Pointers to structured types
- Pointers for encapsulated objects
- Null pointers
- Pointers vs. references
Implementing Classes
- Defining member functions
- Object identity
- The this pointer
- Initialisation
- Constructors
- Default constructors
- Member Initialisation
- Scope issues
- Inlining member functions
Operator Functions
- Operators as functions
- Global operators
- Member operators
- I/O stream operators
- Pitfalls and guidelines
Object Relationships
- Associations and their implementation
- Compositions and their implementation
- Navigation
- Delegation
- Multiplicity
Dynamic Memory
- The need for dynamic memory
- Dynamic objects
- Using new and delete
- Dynamic arrays
- Using new[] and delete[]
- Destructors
More Pointers
- Pointers and arrays
- Pointer arithmetic
- Pointers as array iterators
- Pointers and const
- Pointers vs. references
Containers
- Container concepts and classification
- Template classes
- Standard containers
- Vector
- List
- Iterators
- Template functions
- Algorithms
Copying
- Copy construction
- Copy assignment
- Compiler generated copy behaviour
- Problems
- Solutions
- Reducing Copying
- Restricting Copying
Class Relationships
- Extension of existing classes using inheritance
- Polymorphic behaviour
- Type substitutability
- Abstract base classes
Inheritance
- Protected members
- Substitutability
- Scoping
- Base class initialisation
- Order of object construction and destruction
- Guidelines
Polymorphism
- Declaring and defining virtual functions
- Virtual destructors
- Pure virtual functions
- Using polymorphism through pointers and references
- Guidelines
The Way Ahead
- Support after this course
- Further C++ information sources
- Appendices including C++11 Language Enhancements
Programming with C++