Avatar billede Lasse Novice
24. oktober 2001 - 01:59 Der er 2 kommentarer og
1 løsning

et svaert spg.

I perl kan det lade sig goere at oprette et array af funktioner. Kan det lade sig goere i Vc++? Flere point i vente, hvis der kommer et brugbart svar
Avatar billede Lasse Novice
24. oktober 2001 - 02:02 #1
det skal vaere saledes at man f.eks kan goere saaledes:

//array indeholder 5 funktioner.... fra [0] - [4]

for (i=0;i<array.GetLength(),i++) {
  if(array[i]) { //array[i] er funktionskaldet(eller lign)
    //fejl i denne spec. funktion
  }
}
Avatar billede joha Nybegynder
24. oktober 2001 - 02:52 #2
Det er faktisk ret simpelt, men syntaksen kan være svær at huske.

Hvis du f.eks. har 3 funktioner:

int a(int i) { return i; }
int b(int i) { return i +1; }
int b(int i) { return i +2; }

så kan du lave et array af function-pointers således:

int (*pfnFunctionPointer_Table[])(int) = { a, b, c };

Funktioner kaldes nu således:

int cxTable=sizeof(pfnFunctionPointer_Table) / sizeof(pfnFunctionPointer_Table[0]);

for (int i=0; i<cxTable; i++)
  pfnFunctionPointer_Table[0](i);



Avatar billede soepro Nybegynder
24. oktober 2001 - 08:41 #3
Nemlig - sådan ... og det er selvfølgelig også et krav at alle funktioner returnerer samme type, og har samme antal udgangsparametre. (Men funktionere kunne jo f.eks. være defineret som func(char *a, ...) og dermed indeholde variabelt antal i selve kaldet.)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester