C++-manual
Förutgående | Kapitel 9. Avancerade datatyper | Nästa

# Definiera egna datatyper

I C++ kan man definiera helt egna datatyper om man vill. Detta görs ju redan implicit då man skapar sammansatta datatyper eller använder enumereringar. Förutom dessa kan man definiera egna typer som har en existerande datatyp som grund. Detta görs med hjälp av nyckelordet `typedef`. Allmänna formen för en typdefinition är:

    typedef ursprungsdatatyp ny_datatyp;

Man ger i princip en existerande datatyp ett nytt namn. Den nya datatypen fungerar exakt som den gamla typen med avseende på aritmetik, tilldelningar o.s.v. Några exempel på nya definierade typer:

    typedef long ErrorCode;
    typedef unsigned char uchar;

Via den första definitionen har vi en ny datatyp som heter `ErrorCode` som fungerar precis som en `int`. Den kan göra ett program lättare att läsa då man enkelt förstår vad en funktion returnerar om den returnerar en `ErrorCode`. Det andra fallet definierar en ny typ `uchar` som en ersättare för `unsigned char`. Det är kortare att skriva `uchar`, och om man använder dylika parametrar på många ställen kanske det är mera överskådligt att använda sig av `uchar`. Här märker vi att endast det sista ordet i en `typedef` blir den nya datatypen, medan allt mellan det ordet och `typedef` anses tillhöra namnet på originaltypen. Det är alltså tillåtet att ha en ursprungsdatatyp med flera än ett ord i sin definition, t.ex. en `struct`-definition.

I de flesta fall kan man använda en enumerering eller en klass istället för `typedef`, så det är ganska sällan den används i praktiken. I vissa fall försvarar den dock sin plats i C++:s vokabulär.

Förutgående | Hem | Nästa
Enumereringar | Upp | Preprocessorn