T104

Avancerad C++ programmering

Detta är utbildningen för programmerare som har erfarenhet i C++, men som behöver fördjupa och uppdatera kunskaperna för att kunna utnyttja språkets alla möjligheter till att göra effektivare och mer robusta program. Kursen lär bland annat ut programmeringsidiom och designmönster, standardbibliotekets alla delar med bland annat iteratorer och samlingar, samt de nya klasserna och språkmekanismerna i den föreslagna C++09.

I utbildningen ingår ett flertal mindre övningar som tillsammans bildar en helhet. Övningarna fokuserar var och en på nyss genomgånget material. Exempel på övningar är avancerad operatoröverlagring,  funktionsobjekt, resursallokering och användande av interface. Kursen är helt oberoende av plattform och utvecklingsmiljö.

Målgrupp:

Utbildningen vänder sig till programmerare som har erfarenhet i C++ men behöver fördjupa kunskaperna för att kunna utnyttja språkets alla möjligheter till att göra effektivare och mer robusta program.

Du får lära dig:

  • De delar av språket som mera sällan används men som kan ge nya möjligheter.
  • Avancerade kunskaper i programmeringstekniker såsom interface, templates och operatoröverlagring.
  • Idiom såsom pimpl, funktionsobjekt och optimerat objektskapande.
  • Implementera de klassiska designmönstren i C++.
  • Använda samlingarna i STL, samt streamsbiblioteket.
  • Få en introduktion till förslagen till ny standard: TR1, TR2 och C++09.

Innehåll:

1. Introduktion

  • Kursöversikt

2. Resursallokerande klasser

  • Defaultkonstruktor, copykonstruktor och tilldelningsoperator
  • Enparameterskonstruktor och explicit
  • Resursallokering i konstruktor
  • Ortodox klassform

3. Klassbegreppet

  • Nästlade typer
  • Statiska medlemmar
  • Konstanta medlemmar
  • Referensmedlemmar
  • Enum som medlem
  • Funktionspekare och metodpekare

4. Arv och interface

  • Omdefinitioner
  • Multipelt arv
  • Objektidentitet
  • Virtuella anrop från konstruktor/destruktor
  • Abstrakta basklasser
  • Interface
  • Typecasting

5. Operatoröverlagring

  • Restriktioner
  • Medlem kontra friend
  • Prioritet/associativitet/kommutativitet
  • Inkrementoperatorn
  • Indexoperatorn
  • Typomvandlingsoperatorer

6. Preprocessorn

  • Makron
  • Includevakt
  • Villkorlig kompilering
  • Strängoperaorn
  • Kateneringsoperatorn

7. Typparameterisering

  • Typpolymorfism
  •  Instansiering
  • Funktionsmallar
  • Klassmallar
  • Typparametrar
  • Templates och arv
  • Specialiseringar
  • Separatkompilering

8. Undantag

  • Kasta undantag
  • Egna undantagsklasser
  • Fånga undantag
  • Semantik för undantag

9. Namnrymder

  • Deklaration
  • Nästlade namnrymder
  • Alias
  • Synliggöra typer och namnrymder

10. Indexoperator med två implementationer

  • Separera läsning från skrivning
  • Hjälpklass
  • Tillämpningar

11. Minneshantering

  • Egendefinierad minneshantering
  • Klasspecifik minneshantering

12. Konstruktorallokering

  • Resursobjek
  • Automatisk allokering och avallokering

13. Spårutskrifter

  • Makron för spåruskrifter
  • Spåra inträde/utträde ur funktioner
  • Utskrift av returvärden

14. Funktionsobjekt

  • Instansierbara funktioner
  • Funktionsobjekt med pekare

15. Pimpl

  • Separera interface från implementation
  • Minimera omkompileringar
  • Skapa exceptionsäkerhet

16. Designmönster för objektskapande

  • Factory method
  • Prototype
  • Singleton

17. Strukturella mönster

  • Adapter
  • Composite
  • Decorator 

18. Mönster för beteende

  • Iteratorer
  • State machine 

19. Streams-biblioteket

  • Klasshierarkin
  • Filhantering
  • Fördefinierade streamobjekt
  • Manipulatorer
  • Egendefinierad streamoperator

20. Standard Template Library

  • Samlingsformer
  • Samlingshierarkier
  • Iteratorer
  • Sambandet med algoritmerna

21. Algoritmer

  • Algoritmer som ändrar samlingen
  • Algoritmer för sortering
  • Numeriska algoritmer

22. Standardiseringsarbete

  • Technical Report 1 och 2
  • C++0x

Fakta

Kurs
T104
Längd
5 dagar
Pris
24.500 kr (exkl. moms)
Bookmark and Share

Förkunskaper

Kunskaper i C++.

Kursmaterial

Kursmaterial på svenska ingår.

Kontakta oss
för mer information:

08 - 587 116 10 (Stockholm)
031 - 773 07 90 (Göteborg)
040-662 20 60 (Malmö)
info@informator.se

 
Gold Partner
Novell Partner