Procedur- eller objektorienterat
Små enkla program kan liknas vid ett recept eller monteringsanvisning, där man steg för steg arbetar sig fram till slutprodukten.

Monteringsanvisning bokhylla Josef

1. Tag hyllplan A och fäst vid stag C
2. Skruva i de fyra stjärnskruvarna i stag C
3. Tryck fast gavelstöd B under stjärnskruvarna
etc.


Monteringsanvisningen ovan omnämner vissa delar och vad som ska göras med dessa. Om detta i stället varit en källkod skulle vi sagt att den innehåller algoritmer och data. Algoritmer är vad som ska göras och data är det vi jobbar med (bokhyllsdelarna). De olika stegen som ska utföras (i en bestämd ordning) kallar man för procedurer. Detta är skulle då kunna exemplifiera procedurorienterad programmering.

Procedurorienterad programmering behöver inte alltid följa alla steg utan kan hoppa fram och tillbaka mellan de olika stegen. Om det förekommer rikligt med hopp fram och tillbaka i anvisningen blir det väldigt svårt att följa vad som utförs. I programmeringssammanhang kallas detta för spagettikod (en trasslig röra).

För att undvika spagettikod har man restriktioner för hur hopp i koden får ske. Procedurorienterad programmering där man striktat upp hur kodskrivningen sker kallas för strukturerad programmering, vilket alltså är en form av mer välordnad procedurorienterad programmering. Denna form av programmering är mycket användbar men har svagheter då det gäller komplexa, händelsestyrda program. För att erhålla en programmeringsmetod som var bättre anpassad till denna typ av program, infördes objektorienterad programmering.

Objektorienterad programmering är inte motsatsen till strukturerad programmering, utan en vidarutveckling. Man har behållit styrkan och striktheten från strukturerad programmering men flyttat tyngdpunkten från algoritmer till data. Objektorienterad programmering utgår alltså från objekten som i sig rymmer både data och agerande. Objekten är i sin tur klassifierade, dvs objekt av samma sort sorterar under samma klass. Klasser är av stor betydelse i C++ och du kommer i denna kurs att använda dig av klasser och objekt, även om det inte alltid tydligt framgår. En närmare behandling av klasser, där du t.ex. lär dig att konstruera egna klasser sker i kursen Programmering C.