C++ for Software Development

The course is designed for people with a good existing foundation of C++ and follows on from our other C++ course, C++ for programmers. It aims to develop your skills to the point where you can develop large, complex, multi-developer applications. Here, we focus on writing efficient (both in terms of memory and speed), manageable, stable (error-managed) code. We discuss how to develop large software projects, including: setting up a build system, writing scaleable code, error-catching, managing multi-developer software, version control and code maintenance.

This course assumes familiarity with C++ and the basic ideas of programming with loop and if-statements, etc. Advanced topics like templates, inheritances, etc. will be covered in this course. If you do not have any background in C++ this can be gained from our other course C++ for programmers, which is taught immediately before the course allowing you to do both courses in one week.

Our trainers have significant experience using C++ in the commercial, industrial and academic sectors and, as such, can impart knowledge regarding the specific applications of C++ coding in addition to the general use of the language itself.

A full list of the subjects taught is provided below:


  • Memory management (new/delete, smart pointers, move)

  • Code efficiency

  • Advance OOP (virtual inheritance etc)

  • Templates

  • Operator overloading

  • The standard libraries (utility, algorithm, chrono)

  • Advanced use of classes (polymorphism)

  • Error catching

  • Basic graphics with SFML

  • Writing make files and libraries

  • Code management using CMAKE

  • Using version control both svn and git

We also offer on-site personalised training packages.

The course schedule is designed in such a manner that, if desired, C++ for Programmers and C++ for Software Development may be attended consecutively.

For further details, please refer to our Prices & Booking page.