• [^] # Re: c++ su><or

    Posté par . En réponse à la dépêche Interview de Bjarne Stroustrup. Évalué à 1.

    Si tu passes une methode char *foo(char *) la ou le compilo attend une methode voir (*)void(*), pour moi tu as un bug dans ton code.

    J'appelle pas ca de la programmation mais un hack douteux.

    Quand a passer un pointeur sur la methode d'une surclasse je vois pas ou est le probleme:
    #include<iostream.h>

    class CHello
    {
    public:
    CHello() {}
    const char* GetName() {return m_Name;}
    private:
    static char m_Name[20];
    };
    char CHello::m_Name[20]="CHello";

    typedef const char* (CHello::*pmfGetName)(void);

    class CHelloWorld : public CHello
    {
    public:
    CHelloWorld() {}
    const char* GetName(pmfGetName MyFunc) { return (this->*MyFunc)(); }
    };

    int main(int argc, char *argv[])
    {
    pmfGetName FuncName=&CHello::GetName;
    CHelloWorld TestClass;
    cout<<TestClass.GetName(FuncName)<<endl;
    return 0;
    }