Göm menyn

TDDI14 Objektorienterad programmering

Föreläsningsplan


Referenser till kursboken C++ direkt avser den tredje upplagan, 2011.

Utdelat och annat material

Överblivna kopior finns utanför Tommy Olssons rum.

Föreläsning

OH-kopior: Introduktion fullformat  |  Introduktion miniatyrer 2x2

OH-kopior: Fö 1-2 fullformat  |  Fö 1-2 miniatyrer 2x2

OH-kopior: Fö 3-4 fullformat  |  Fö 3-4 miniatyrer 2x2

OH-kopior: Fö 5 fullformat  |  Fö 5 miniatyrer 2x2

OH-kopior: Fö 6 fullformat  |  Fö 6 miniatyrer 2x2

Kodexempel föreläsning

Fö 1-2: klassen String
Fö 3-4: klasshierarkin Person-Employee-Manager-Consultant
Fö 5: Listklass med polymorfa listnodklasser
Fö 6: klassmallen Array



Fö 1 
2/4

Introduktion till kursen

Objektorienterad programmering

Klasser
Känt från TDIU04: klasstyper (struct, class), datamedlem, medlemsfunktion, speciella medlemsfunktioner, konstruktor, destruktor, tilldelningsoperatorer, åtkomstspecifikation (public, private) och namnrymd (namespace) samt mallar (template).

Design av en enskild, icke-trivial klass (exemplet String). Initiering, destruering, kopiering och tilldelning av klassobjekt. Olika typer av konstruktorer, destruktor. Tilldelningsoperatorer. Move-semantik, move-konstruktor, move-tilldelningsoperator. Iteratorer. Typomvandling (typomvandlande konstruktorer, typomvandlingsoperatorfunktioner). this-pekaren.

Läsanvisningar: C++ direkt kap 7, 8 (ej 8.7).


Fö 2
3/4

Klasser forts.

Operatoröverlagring
Känt från TDIU04: överlagring av operator<< och operator>> för en egen datatyp, överlagring av operator(), funktionsanropsoperatorn (i samband med funktionsobjekt).

Operatoröverlagring för String: operator= (speciellt kopierings- och move-tilldelning), operator[], operator+, operator+=, operator==, operator!=, operator<, operator<=, m.fl.

Läsanvisningar: C++ direkt kap 7, 8 (ej 8.6).


Fö 3 
10/4

Härledning/Arv
Härledda klasser, arv. Orientering om konstruktioner och begrepp (härledning,—arv, basklass—subklass, polymorfi—dynamisk bindning). Olika former av arv (enkelt arv, multipelt arv, repeterat arv, virtuellt arv).

Enkelt arv i C++. Grundläggande konstruktioner och mekanismer. Åtkomstspecifikation i samband med arv, speciellt protected. Initiering och destruering i klasshierarkier, virtuell destruktor.

Virtuella medlemsfunktioner, rent virtuella medlemsfunktioner ("pure virtual", "pure specifier" — "=0"), överskuggning ("overriding"), polymorf klass, abstrakt klass. Märkning av klasser med "final", märkning av virtuella medlemsfunktionern med "override" och "final". Dynamisk typkontroll och dynamisk typomvandling (RTTI, "Run-Time Type Identification", typeid, dynamic_cast).

Läsanvisningar: C++ direkt kap 9.


Fö 4 
12/4

Härledning/Arv (forts.)
Se Fö 3.

Läsanvisningar: C++ direkt kap 9.


Fö 5 
19/4

Uttrycksträd
Binära träd, speciellt uttrycksträd (laboration Kalkylatorn). Trädtraversering och andra trädoperationer.

Polymorf lista
Exempel på polymorf klasshierarki för enkellänkad lista.

Läsanvisningar: 13.4 (titta inte på 13.4.3!).


Fö 6 
26/4

Mallar
Känt från TDIU04: att kunna göra om en enkel struct/class till en mall, template. Mallparameterlista, malltypparameter (template<typename T>). instansiering, instansieringsargument. Standardbiblioteksmallar: containerklasserna, de fördefinierade funktionsobjektsklasserna.

Olika slags mallparametrar, typparametrar, icke-typparametrar.

Funktionsmallar. Regler för användning av funktionsmallar för att lösa anrop.

Läsanvisningar: C++ direkt kap 14.


Sidansvarig: Tommy Olsson
Senast uppdaterad: 2013-03-14