Fehler bei der Adresse der eingeklammerten Elementfunktion

Fand ich etwas Interessantes. Die Fehlermeldung sagt alles. Was ist der Grund hinter, der nicht erlaubt Klammern während der Einnahme der Adresse eines nicht-statische member-Funktion? Ich habe es kompiliert on-gcc 4.3.4.

#include <iostream>

class myfoo{
    public:
     int foo(int number){
         return (number*10);
     }
};

int main (int argc, char * const argv[]) {

    int (myfoo::*fPtr)(int) = NULL;

    fPtr = &(myfoo::foo);  //main.cpp:14

    return 0;

}

Fehler: main.cpp:14: Fehler: ISO-C++ verbietet das die Adresse einer nicht qualifizierten oder Klammern eingeschlossene nicht-statische member-Funktion zu bilden, die einen Zeiger auf member-Funktion. Sagen, '&myfoo::foo'

InformationsquelleAutor der Frage Mahesh | 2011-08-20

Schreibe einen Kommentar