T104

Ladda ner som PDF

C++ Advanced Programming

C++ Advanced Programming - Informator UtbildningThis is the course for experienced C++ programmers with a need to expand their skills into a complete knowledge of the language and new ways to use it for stable, effective and well designed applications. The course is fully updated to the C++17 standard, and is platform and IDE independent.

Course focus is on the language itself and the most widely used idioms. For a course on the Standard Library, see T1233 Applied Modern C++. Several labs illustrate the theory. Among the lab themes are resource allocation, advanced operator overloading, smart pointers, function objects, interfaces and abstract classes, exception safety, move semantics and forward references.

Audience

Developers with a good working knowledge of everyday C++, as from any basic course plus practical experience.

Prior knowledge

Working knowledge of C++, as from T516 C++ Programming - Introduction plus practical experience

Language

The course is taught in Swedish (Contact us if you prefer English).

Courseware

Course material in English.

Course Outline:

Module 1. Introduction

Module 2. Compiler Generated Member Functions

  • Default constructor 
  • Copy constructor 
  • Assignment operator
  • Single argument constructor
  • Resource allocating classes
  • Move semantics
  • Initializer list constructors

Module 3. Class Members

  • Nested types
  • Aliases
  • Static members
  • Const members
  • Reference members
  • Enum as a member
  • Ref qualified methods
  • Function pointers and method pointers
  • Type inference
  • Structured binding

Module 4. Inheritance and Interfaces

  • Overrides
  • Inheriting constructors
  • Multiple inheritance
  • Object identity
  • Virtual calls from constructor/destructor
  • Abstract base classes
  • Interface
  • Safe downcasting

Module 5. Operator Overloading

  • Restrictions
  • Member or friend
  • Priority/associativity/commutativity
  • Increment/decrement operator
  • Index operator
  • Type converters
  • Bool operator
  • User defined literals

Module 6. Preprocessor Directives

  • Macros
  • Conditional compilation
  • Include guard
  • Conditional compilation
  • String operator
  • Catenation operator

Module 7. Templates

  • Type polymorphism
  • Instantiation
  • Function templates
  • Class templates
  • Type and value parameters
  • Templates and inheritance
  • Specializations and partial specializations
  • Static members
  • Explicit instantiation requests

Module 8. Exceptions

  • Throw
  • Exception classes
  • Catch
  • Exception declarations
  • Alternative... Läs mer

Course Outline:

Module 1. Introduction

Module 2. Compiler Generated Member Functions

  • Default constructor 
  • Copy constructor 
  • Assignment operator
  • Single argument constructor
  • Resource allocating classes
  • Move semantics
  • Initializer list constructors

Module 3. Class Members

  • Nested types
  • Aliases
  • Static members
  • Const members
  • Reference members
  • Enum as a member
  • Ref qualified methods
  • Function pointers and method pointers
  • Type inference
  • Structured binding

Module 4. Inheritance and Interfaces

  • Overrides
  • Inheriting constructors
  • Multiple inheritance
  • Object identity
  • Virtual calls from constructor/destructor
  • Abstract base classes
  • Interface
  • Safe downcasting

Module 5. Operator Overloading

  • Restrictions
  • Member or friend
  • Priority/associativity/commutativity
  • Increment/decrement operator
  • Index operator
  • Type converters
  • Bool operator
  • User defined literals

Module 6. Preprocessor Directives

  • Macros
  • Conditional compilation
  • Include guard
  • Conditional compilation
  • String operator
  • Catenation operator

Module 7. Templates

  • Type polymorphism
  • Instantiation
  • Function templates
  • Class templates
  • Type and value parameters
  • Templates and inheritance
  • Specializations and partial specializations
  • Static members
  • Explicit instantiation requests

Module 8. Exceptions

  • Throw
  • Exception classes
  • Catch
  • Exception declarations
  • Alternative designs

Module 9. Namespaces

  • Declaration
  • Nested namespaces
  • Alias
  • Using and namespaces
  • Namespace std
  • Unnamed namespaces

Module 10. Copy-Swap and Exception Safety

  • Exception Safety
  • Copy-Swap for Assignment
  • std::swap and std::move
  • Copy-Swap for General Use

Module 11. Function Objects

  • The function call operator
  • Function pointer callback
  • Lambda expressions
  • The function standard class
  • Policy objects
  • Event objects


Module 12. Universal Forward References

  • Overloading on lvalue/rvalue
  • Creating a Forward Reference
  • Perfect Forwarding

Module 13. Smart Pointers and Iterators

  • Smart Pointers ownership
  • Schemes for ownership transfer
  • The Standard Library smart pointers
  • Iterators
  • The Standard Library Iterators
  • Range based for

Module 14. Standard Library Containers

  • Overview collections and algorithms
  • Templated collections in more detail
  • The string class
  • Iterators
  • Data types
  • Assessing time and time complexity

Module 15. Miscellaneous Standard Classes (optional)

  • Streams library
  • Filesystem
  • Thread and synchronization classes
  • Random numbers
  • Regular expressions
  • Time

What do our participants think

" Very skilled and a good teacher. Covers both some basics and more advanced topics." Citat från tidigare deltagare
"Läraren förklarade många komplicerade saker på ett sådant vis att det blev jättelätt att förstå principen och inte enbart hur de används. Bästa programmeringsläraren jag haft!" Citat från tidigare deltagare

 

Kursfakta

Kurs-ID: T104
Längd: 4 dagar
Pris exkl moms: 32 950 kr
Inregistrering: 09.00
Kursstart: 09.30
Kursslut (ca): 17.00

Frågor om kursen?

Har du frågor om kursens innehåll, leveransdatum/ort eller behöver en företagsanpassad variant? Fyll i formuläret nedan!


Kan betalas med:
TRAINING CARD

Ort och datum

Stockholm
19 feb-22 feb
Boka nu!
9 apr-12 apr
Boka nu!
2 jul-5 jul
Boka nu!
Göteborg
19 feb-22 feb
R
Boka nu!
9 apr-12 apr
R
Boka nu!
2 jul-5 jul
R
Boka nu!
Cloud Access
i Läs mer

Delta på kursen från ditt hem, jobb eller annan plats.

19 feb-22 feb
Boka nu!
9 apr-12 apr
Boka nu!
2 jul-5 jul
Boka nu!

Tipsa