C++ Avancerad programmering
C++ är standardspråket för att implementera många former av objektorienterade lösningar, men det är samtidigt ett av de svåraste språken att fullständig bemästra. I den här kursen går vi igenom hur man utvecklar professionella C++ applikationer med hög tillförlitlighet som är återanvändbara, lätta att testa och lätta att vidareutveckla både av dig själv och av andra. Du får också lära dig att behärskar de avancerade koncepten i C++ och hur du gör utvecklar effektiv kod med optimal minneshantering som kan exekvera på olika plattformar.
Utbildningen är en blandning av teori och praktiska övningar.
Målgrupp
Målgruppen är utvecklare som arbetat en tid med C++ och som vill fördjupa sina kunskaper, både när det gäller språket som sådant men även vanliga idiom och "best practices".
Mål
EEfter kursen slut har du en förståelse för hur du utvecklar professionellt i C++ och skriver effektiv C++-kod. Du får också lära dig att skriva plattformsoberoende kod och hur du kodar med stil i C++.
Bakgrundskunskaper
Du ska ha goda kunskaper i C++ och du bör lämpligen arbeta med C++ på daglig basis.
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
Vi går igenom:
Modern C++
De viktigare förändringarna i modern C++
Mer om klasser
Fördjupning i klasser, medlemmar, arv och polymorfism
Genererade metoder and operatorer
Resursallokerande klasser
R-value references och move semantics
Konstruktor och tilldelningsoperator som flyttar data istället för att kopiera
Effektiv initiering
Vocabulary types
std::optional, std::any, std::variant och visitor
Templates
Skapa klass- och funktionstemplates
Explicit instansiering
Explicit specialisering
Partial instansiering
Alias-templates
Funktionsobjekt och lambdauttryck
Funktionsanropsoperator
Funktionsobjekt som predikat
std::function
Använda yttre variabler - capture
Smartpekare
Varför använda smartpekare?
std::unique_ptr
std::shared_ptr
std::weak_ptr
Exceptions
Prestanda med exeptions
Assert eller exception?
Exceptionsäkerhet
Chrono
Olika typer av klockor
Kalender
Tidszoner
Tidspann
Ranges
Ranges
Views
Rangealgoritmer
Avancerad templateprogramming
Variadiska templates
SFINAE
Concepts
Moduler
module
import
export
Build systems
Mer information
För mer information kontakta Åsa Detterfelt, 070-659 58 12, alternativt maila asa.detterfelt@mindroad.se.