void one(void) { puts("\nYou entered one"); } void two(void) { puts("\nYou entered two"); } void other(void) { puts("\nYou did not enter 1 or 2 jurk!!"); }
Jeg har et par spørgsmål.....Hvis vi kigger på func1, som er den function som har en pointer til en funktion. Jeg kan ikke rigtigt se hvad man kan bruge dette argument til i func1.
Hvis man har en function med pointer til en func. hvad har man så af muligheder for at bruge dette argument til noget fornuftigt, og hvad for nogle muligheder har man med det ?+
if-sætningen i main sætter pointeren til at pege på den funktioneder ønskes udført, fx ptr=one;
func1 udfører selve funktionen idét den får p som argument og kalder p();
Nu fremgår det ikke særlig godt, fordi dette er et simpelt eksempel... Fordelen ved, at func1 her har en pointer til en funktion er, at den kan udføre funktionen men den behøver ikke vide noget som helst om den! Altså den behøver ikke kende funktionens navn...
Det er meget smart i C til at generalisere noget kode med.
I C++ er der ofte andre måder. At disse måder så ofte bruger en functtion pointer "behind the scene" er en helt anden sag. En metode der er erklæret virtual er i virkeligheden en function pointer.
Synes godt om
Ny brugerNybegynder
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.