Under Steg 1 – Steg 3 har vi redan använt funktioner, både standardfunktioner som definieras i inbyggda C++ bibliotek och vissa egendefinierade funktioner. De senare enligt en enklare modell som i andra språk ofta kallas procedurer, d.v.s. void-deklarerade funktioner (= utan returvärde). I Steg 4 gör vi nu en grundlig genomgång av funktionsbegreppet samt introducerar alternativ och villkor för dataöverföring mellan funktioner och program.
Steget omfattar teorin från kursbokens kapitel 7: Functions, Part One: The Fundamentals (sid. 127-156) och kapitel 8: Functions, Part Two: References, Overloading, and Default Arguments (sid. 157-179).
Instudering
Sid. 128-141 ger viktiga grundkunskaper om funktioner, som ska behärskas.
Avsnitten argc and argv: Arguments to main() samt Passing Numeric Command Line Arguments (141-144) kan studeras översiktligt.
Sid. 145-153 är likaså viktiga funktionsbegrepp att kunna, medan avsnittet Recursion (153-156) är tillräckligt att läsa översiktligt.
Sid. 158-163 behandlar värdeparametrar och referensparametrar, vilket är av stor vikt att du förstår, för att fullständigt behärska funktionsbegreppet.
Avsnitten om specialfall av referenshantering, från Returning References t.o.m. A Few Restrictions… (164-169) är valfri läsning.
Sid. 170-179, introducerar Överlagrade funktioner och funktioner med defaultvärden. Detta är betydelsefullt för den senare Objektorienterade fortsättningskursen i C++, så läs detta noggrant.
Mål
Efter Steg 4 ska du förstå hur funktioner används för att strukturera stora program logiskt och överskådligt. Du ska med hjälp av funktioner kunna visa hur man delar upp programuppgifter i mindre oberoende delar, så att koden utnyttjas effektivt. Därmed ska du också känna till på vilka villkor dataöverföring sker mellan program och funktioner, framförallt via returvärden.
Du ska kunna visa en varierad användning av funktionsparametrar, såsom olika typer av variabler, arrayer, strängar, strukturer och pekare, samt förstå de väsentliga skillnaderna mellan värdeparametrar och referensparametrar. I detta sammanhang ska villkor för globala och lokala variabler kunna tillämpas. Detta innefattar kunskap om hur deklarationsområde och räckvidd styr överföring av data till och från funktioner eller inom olika block i en funktion. Avslutningsvis kommer du att ha grundläggande kännedom om hur överlagrade funktioner och defaultparametrar kan utnyttjas för att åstadkomma en flexibel programkod.
Innehåll
Moment och begrepp som tas upp:
- Utvecklingsmodell
- funktioners betydelse för strukturerad programmering
- Deklarationsområde och räckvidd
- lokala variabler – globala variabler
- Grundläggande funktionsbegrepp
- funktionsdeklaration – funktionsdefinition – returvärde alt. void-funktioner
- Parametrar
- värdeparametrar – referensparametrar – default-parametrar
- Överlagrade funktioner
Praktisk tillämpning
Steget har 12 laborationsuppgifter, bland vilka du gör lämpliga val för att uppnå 6 poäng (minimikrav för godkänt laborationsmoment). Observera att uppgift 1 är obligatorisk.