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

Diakopior: Fö 1-2 fullformat  |  Fö 1-2 miniatyrer 2x2

Diakopior: Fö 3-4 fullformat  |  Fö 3-4 miniatyrer 2x2

Diakopior: Fö 5 fullformat  |  Fö 5 miniatyrer 2x2

Diakopior: Fö 6 fullformat  |  Fö 6 miniatyrer 2x2

Kodexempel föreläsning

Fö 1-2: klassen String (utdelas Fö 1)
Fö 3-4: klasshierarkin Person-Employee-Manager-Consultant (utdelas Fö 1)
Fö 5: Listklassmed polymorfa listnodklasser (utdelas Fö 5)
Fö 6: klassmallen Array (utdelas Fö 5)



Fö 1   
12/3

Introduktion till kursen

Objektorienterad programmering.

Klasser

Känt från TDIU01, TDIU04: klasstyper (struct, class), datamedlem, medlemsfunktion, konstruktor, destruktor, åtkomstspecifikation (public, private). Även namnrymd (namespace) känt från TDIU04.

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

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


Fö 2   
13/3

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 kopieringstilldelning), operator[], operator+, operator+=, operator==, operator!=, operator<, operator<=, m.fl.

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


Fö 3   
23/3

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"), polymorf klass, överskuggning ("overriding"), abstrakt klass. Dynamisk typkontroll och dynamisk typomvandling (RTTI, "Run-Time Type Identification").

Läsanvisningar: C++ direkt kap 9.


Fö 4  
26/3

Härledning/Arv (forts.)

Se Fö 3.

Läsanvisningar: C++ direkt kap 9.


v 14   
 

Påsklov


v 15   
 

Tentamensperiod Påsk


Fö 5  
16/4

Uttrycksträd

Binära träd, speciellt uttrycksträd (laboration Kalkylatorn). Trädtraversering.

Kanske något mer...

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


Fö 6  
23/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: 2012-03-07