This course teaches the student the fundamentals of the standard ANSI C++ object oriented programming as well as application related topics such as threads, sockets and imbedded SQL programming techniques. It specifically deals with the C++ language constructs that implement objects using the class concept, data encapsulation, inheritance including polymorphism and methods. The following topics are covered:
An overview of the stream class hierarchy with specific reference to the following:
- Console I/O (cin & cout) with output formatting using manipulators.
- File I/O inclusive of serial, random and index sequential techniques.
This topic introduces the class concept and object instantiation. Concepts covered are:
- Class definitions
- Data encapsulation
- Constructors (default, initialising, copy) and destructors
- Methods (accessors and mutators) and method overloading
- The this pointer
- Operator overloading
- Friend functions
This section describes C++ templates with specific emphasis on a subset of the Standard Template Library (STL) container classes and generic algorithms are described.
An overview of object orientation with special emphasis on inheritance, composition (aggregation) and polymorphism is given. An example is developed to address base and derived classes and redefined methods. Polymorphism includes object assignment, pointer assignment and virtual methods.
A description of the POSIX® implementation of user threads, data coherence (semaphores) with shared resources and thread communication.
This topic describes the BSD® socket implementation.
An overview of imbedded SQL in C++ programs is given.
More that two thirds of the course is dedicated to hand-on practical work. The latter revolves around the development of a set of banking applications that simulate a typical ATM operation as well as so-called internet banking facilities. The system represents a typical client-server application and the learner will only need to develop the server side. The client side has been developed and is supplied to the learner. The learner will have access to a set of user developed classes which implements a
- date class;
- keyboard class;
- thread class and
- a generic print class.
At the completion of the course the learner will be able to:
- Design and develop server applications in C++ that communicate via sockets with a client application.
- Design several C++ classes that implements specific functionality as required by the project.
- Use C++ code to access a relational database using SQL statements.
- Build scripts to compile and build the application.
Assessment processes are built into the course for learners as part of our commitment to life-long learning. Formative assessment is carried out during the training via Course Activities. Summative assessment commences after the training in the form of a written knowledge questionnaire and if applicable, the practical assignment that the learners are required to complete as part of their course content.
Learners will receive a certificate of competence on successful completion of the course
The computer platform used is Linux. The academy uses the SuSE distribution. The database management system used is MySQL.
The following material is supplied:
- A full set of notes covering the course outline.
- A CD containing (i) an HTML version of a popular C++ book and
- a solution to the project.
C++ Programming Primer