C++ Advanced Concepts

C++ är standardspråket för att implementera objektorienterade lösningar. Trots att språket är baserat på C, så finns många subtila syntaktiska och designfrågor att ta ställning till när man programmerar C++. För utvecklare med gedigen C++-erfarenhet blir resultatet av de nya begreppen i C++11 att det uppträder som ett nytt programmeringsspråk.

I kursen görs en djupdykning i C++ inklusive en genomgång av vad som är nytt i C++11. Vi går igenom avancerade koncept, ”programming patterns” och best-practice för C++-programmering.

Utbildningen är en blandning av teori och praktiska övningar.

Målgrupp
Målgruppen är mjukvaruutvecklare med erfarenhet av programmering i C++ som vill fördjupa sina kunskaper.

Mål
Efter kursen slut har du en förståelse för:
•        Nya och avancerade språkfunktioner
•        Användning av standardbiblioteket
•        Implementering av objektorienterade begrepp och mönster i C++
•        Effektiv C++-programmeringsteknik
•        ”Best practice” av specifika komponenttekniker som COM och CORBA
•        Olika sätt att maximera effektiviteten, kodkvalitet och återanvändbarhet.

Bakgrundskunskaper
Deltagarna förväntas kunna utveckla i C/C++.

Instruktör
Instruktör är Hans Lunell som har disputerat i datavetenskap och arbetat i mer än 30 år som lektor, konsult inom mjukvaruutveckling och som instruktör. Hans har även skrivit ett flertal böcker med datavetenskaplig inriktning.

Språk
Utbildningsmaterialet är skrivet på engelska. Utbildningen kan genomföras antingen på svenska eller engelska.

Kurslängd
Kursen genomförs under tre dagar.

Innehåll

C++ and object-oriented concepts refresher

What is new to the C++11 language

Copying and Conversions

  • Staticcast, dynamiccast, constcast, and reinterpretcast keyword casts
  • Logical vs physical const-ness and the mutable keyword
  • Converting constructors and the explicit keyword User defined conversion operators.
  • Copy construction and assignment.
Scope
  • Static class members
  • Singleton pattern
  • Nested classes
  • Nested class forward declarations
  • Namespaces
Template Functions
  • Using and implementing generic algorithms with template functions
  • Overloading and specializing template functions
  • Template instantiation and linkage
Template Classes
  • Using and implementing generic types with template classes
  • Multiple template parameters
  • The standard vector, list, pair, and map template classes
Iterators and Algorithms
  • The need for iterators
  • The standard library iterator model
  • Generic algorithms using iterators
  • STL algorithm pitfalls introduction to function objects
Exception Handling
  • Clasifying and handling exceptions
  • Catching and throwing exceptions
  • The standard exception class hierarchy
  • Uncaught exceptions
  • Strategies for handling exceptions
Functional Abstraction
  • Traditional callbacks using function pointers
  • The command pattern
  • More on function objects
  • Member functions pointers


Mer information
För mer information kontakta Åsa Detterfelt, 070-659 58 12, alternativt maila asa.detterfelt@mindroad.se.