Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

C++ vraagjes

phaas
3 antwoorden
  • Ik heb twee vraagjes:
    1. Hoe kan achterhalen in een agumentloze functie wie/wat de 'sender' was, ofwel de aanroeper van de functie

    2. Hoe kan ik een pointer naar een functie maken en die later weer aanroepen.

    Bedankt,
    Barry
  • 1) Geen idee

    2)
    [code:1:a524badef8]#include <stdio.h>

    // a function taking no arguments and returning nothing
    // this function prints the famous string 'Hello world'
    void abc()
    {
    printf("Hello world
    ");
    }

    // another function returning a pointer to a char and taking an argument
    // this function multiplies the argument by 2 and
    // converts the result to a string
    char *def(int i)
    {
    static char buf[10];
    sprintf(buf,"%d",2*i);
    return buf;
    }

    int main()
    {
    // pointers to function declaration
    void (*myfunc1)();
    char *(*myfunc2)(int i);
    // other variables declaration
    char *ptr;

    // assign the functions
    myfunc1=abc;
    myfunc2=def;

    // call the functions
    myfunc1();
    ptr=myfunc2(5);
    printf("%s
    ", ptr);

    }
    [/code:1:a524badef8]

    De eerste twee regels in main beantwoorden je vraag, de overige laten zien hoe je vervolgens toekent en gebruikt.
    Overigens heeft dit niks met C++ te maken, maar met C.

    PS: De voorbeeld-code is geschreven in C en niet in C++.
  • Nog even gezocht op het internet voor je:
    http://www.c-plusplus.de/tuts/cpp/cpp_functionpointers_eng.pdf

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.