Det er forskelligt hvordan void bruges, i en funktion er void "ingenting", altså man behøver ikke returnere noget. Men som pointer er det en type der kan antage form som alle andre typer. Fra mit kodeeksempel før behøvede det ikke være en int-type, det kunne lige så godt være en char-type.
// Returtypen er void, altså "ingenting"
void foo(void *bar) // *bar kan tage imod alt, fra en string til en integer.
{
/*
Returtypen er som sagt sat til void, da vi ikke ved hvad
vores pointer, bar, vil modtage. Vi vil ikke kunne
returnere en int hvis vi modtager en char
*/
}
// ...
char myChar = 'a', *ptr2myChar = &myChar;
int myInt = 100, *ptr2myInt = &myInt;
float myFloat = 1.3, *ptr2myFloat = &myFloat;
std::string myStr = "A string", *ptr2myStr = &myStr;
foo(ptr2myChar);
foo(ptr2myInt);
foo(ptr2myFloat);
foo(ptr2myStr);
Man kan også få et indtryk af hvordan void fungerer i gammel C/C++-kode, hvor void tit blev brugt til returtype i main-funktionen, samt void i en parameterliste, hvis der ingen andre paramtre var.
void main(void) // Ingen paramtre, så vi sætter void ("ingenting")
{
// Her ser vi igen, ingen returtype, så vi returnere intet
// I ANSI-C++ ville der blive returneret et nul (0)
}
Jeg har svært ved at forklare mere om void-typen. Kort og godt er det bare en type der bruges til "alt det andet". Hvis du ikke ved hvilken type din funktion skal returnere, da inputtet kan være forskellige, eller hvis du ikke ved hvilken type der skal "sendes" til pointer, så gør man brug af void. Det afhænger selvfølgelig også af sprog, da nogle måske gøre mere brug af det end andre.
Du kan finde en kort forklaring om det på Wikipedia;
http://en.wikipedia.org/wiki/Void_typeHvis du endnu ikke har forstået må en anden tage over.
Held og lykke!