2008-12-06

For future reference: Callbacks dentro de uma classe em C++

Como usar ponteiros para funções em C++ (sem usar métodos static)

#include < iostream >

using namespace std;

class Teste {
public:
int FuncaoAlvo();
int Chamador(int (Teste::*ff)());
int FuncaoInicial();

};

int Teste::FuncaoAlvo() {
cout << "WE'VE DONE IT!!" << endl;
return 3;
}

int Teste::Chamador(int (Teste::*ff)()) {

return ((this->*ff)());
}

int Teste::FuncaoInicial() {
return(Chamador(&Teste::FuncaoAlvo));
}

int main (void) {
Teste a;

cout << a.FuncaoInicial() << endl;

return 0;
}

7 comments:

Peres said...

Como foi que te disseram?

que andavas a programar usando as classes como em java, com c++ lá dentro, usando C para alocar memória?

neca said...

omg so happy to have changed courses right now!

Sintra said...

Ainda bem que POO já tá feito.
É que olhei muito seriamente para o que aí estava e fiquei O_O

Pedro Francisco said...

Nunca o teria feito sem ajuda de um prof e da Wikipedia :p

Zeca said...

Posso ser só eu ... mas isso não é quase C normal (pra nao dizer normal mesmo)?

Sintra said...

EPA É TUDO MENOS NORMAL PÁ.

Saurnil said...

Acho que te esqueceste de um ponto e vírgula algures. :P