Programkvalitet och användarvänlighet
Mål
Du förutsätts nu kunna tillämpa de objektorienterade principer som du lärt från föregående steg, så att dina program håller en hög grundkvalitet. Detta innebär att du vet vilka konstruktorer och medlemsmetoder som är lämpliga att förse dina klasser med, för att förekomma problem för dess (åter)användare.
Efter Steg 2 ska du känna till det objektorienterade nyckelbegreppet inkapsling, vars syfte är att dölja hur ett objekts beteende och data faktiskt är implementerat och kunna använda lämpliga programmeringstekniska medel för att stödja detta. Dina program ska uppvisa en (meningsfullt) kontrollerad åtkomst av klassens datamedlemmar, framförallt med hjälp av synlighetsdeklaration (nyckelorden private och public) men också med get- och set-metoder. Användning av const-deklaration på objekt och dess metoder är en annan viktig kvalitetssäkring för dina program, som du ska behärska.
Du ska förstå syftet med operatoröverlagring och känna till hur du (måttfullt och restriktivt) definierar egna operatorer, för att göra din klass flexibel och anpassningsbar. Detta innebär att förse den med medlemsfunktioner, som anpassar några vanliga C++-operatorer till din egendefinierade typ (klassen). Med hjälp av begreppen friend och inline kommer du även ha kunskap om hur du kan utöka (standard-)klasser med behövliga funktioner. Avslutningsvis har du fått lära dig hur du garanterar en stabil och felsäker programkörning, med hjälp av språkets mekanismer för undantagshantering.
Innehåll
I stegets lektioner tas först upp tekniken för att definiera egna operatorer. Därefter behandlas några objektorienterade kvalitetstekniker för en säker hantering av klassens medlemmar, med andra ord olika sätt att skydda klassens innehåll samt främja god felsäkerhet. Teorin, som du bör läsa i nämnd ordning, finns i kursbokens kapitel 13 (Operator Overloading), kompletterat med kap. 11: 264-266 (inline functions) och kap. 12: 274-278 (friend functions) samt kap. 18: 420-425 (Overloading the I/O Operators). Const-begreppet behandlas i bl.a. kap. 9: 182-184 och kap. 20: 486-488 (const member functions). Slutlig läsning är kap. 17 (Exception Handling).
Moment och begrepp:
- Operatorer – olika varianter, prioriteter och möjligheter till överlagring
- Operatorfunktioner implementeras som medlemsfunktioner
- Utökning av standardklasser med vanliga funktioner
- inline-funktioner, fördelar och begränsningar
- friend-deklarationen ger yttre funktioner åtkomst till privat data
- const-begreppet
- Inkapsling av objekt
- Åtkomstkontroll med get()- och set()-metoder
- Felhantering med stöd av undantagshantering/exception handling