Raficcha 1 Denunciar post Postado Agosto 14, 2009 Olá pessoal, sou programador delphi a algum tempo ja. Em delphi (e em javasccript tambeim) utilizo funções de callbacks, principalmente para criar objetos. Em c++ estou ainda iniciando e gostaria de saber como fazer funções de callback. Preciso para criar meu objetos e conseguir mais flexibilidade dentro da linguagem. Então, como crio funções de callbacks em c++? obrigado pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Agosto 14, 2009 Olá Raficcha! Quando programamos em C utilizamos MUITO os ponteiros. Em C++ é um pouco diferente, por causa da STL, mas os ponteiros são igualmente importantes! Callbacks são feitos com ponteiros para funções. Aconselho a você dar uma boa estudada em ponteiros, depois ponteiros para funções. Mas escrevi um exemplo rápido: #include <iostream> using namespace std; bool Compare(int a, int b, char op) { switch (op) { case '<': return a < b; case '>': return a > b; } } void bubbleSort(int *arr, int size, bool (*cmp)(int, int, char)) { bool change = true; while (change) { change = false; for (int i = 0; i < size-1; i++) { //Vamos chamar a função passada como parametro. if ((cmp)(arr[i], arr[i+1], '>')) { int tmp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = tmp; change = true; break; } } } } int main() { int myInts[] = {13, 243, 1, 53, 123, 3, 54, 64, 2324, 64 ,453, 23}; bubbleSort(myInts, 12, &Compare); for (int i=0; i<12; i++) cout << myInts[i] << "; "; cout << endl; return 0; } ATENÇÃO: É aconselhável o uso de um std::vector, não um int*. Mas para descomplicar usei int*. :P Não sei o seu nível... isto é, não sei o que você ja sabe acerca da linguagem. Mas se buscas flexibilidade, use templates! por exemplo, complicando um pouco o exemplo anterior, temos: http://codepad.org/1ZImahHt Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Agosto 14, 2009 Cara, extamente isso que eu precisa. Testei aqui, ja testei com outras funções funcionaram.. agora é so marcar o topico como [resolvido]. hehe callbacks = ponteiros para funções.. so não sabia como fazer em c++ VictorCacciari, muito obrigado cara. Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Agosto 14, 2009 =D De nada! Ainda bem que o codigo ajudou! Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Agosto 14, 2009 hehe.. valeus, hehe..logo volto com outras duvidas e ajudas tambeim.. hehe Compartilhar este post Link para o post Compartilhar em outros sites