Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2010, 01:16
sk-byte
 
Fecha de Ingreso: agosto-2005
Mensajes: 9
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta PUNTERO A MÈTODO, problema

TENGO LO SIGUIENTE
Busqueda.h:

Código:
#ifndef CLASECITA_H_INCLUDED
#define CLASECITA_H_INCLUDED
#include "BinaryTree.cpp"
class Busqueda{
    private:
    int x;
    int y;

    public:
    int getX();
    void output2(int a);
};

#endif // CLASECITA_H_INCLUDED

Busqueda.cpp:

Código:
#include <iostream>
#include <string>
#include "clasecita.h"
#include "BinaryTree.cpp"
using namespace std;
#ifndef NULL
#define NULL 0
#endif

void output1(int a){
    cout<<a;
}

void Busqueda::output2(int a){
    cout<<a;
}

 int Busqueda::getX(){
    return this->x;
    BinTree<int> arbol;
    arbol.SetInOrder(output1);
    arbol.SetInOrder(output2); //Linea 21
    arbol.InOrder();
}
Lo que tengo es una la clase Busqueda definida en el .h y desarrollada en el .cpp. Ademàs el .cpp tiene dos funciones las cuales se van a usar como parametro para un mètodo que requiere funciones como parametro. El tema es que cuando hago arbol.SetInOrder(output1) siendo output1 una funciòn desarrollada en ese mismo .cpp no tira error. Pero cuando hago arbol.SetInOrder(output2), siendo output2 un mètodo pùblico de la clase Busqueda, si tira el siguiente error:

Cita:
Busqueda.cpp|21|error: no matching function for call to `BinTree<int>::SetInOrder(<unknown type>)'|

BinaryTree.cpp|173|note: candidates are: void BinTree<type>::SetInOrder(void (*)(type)) [with type = int]|
EL mètodo SetInOrder toma como parametro: void (*funcion) (type data). Por què me permite pasarle a SetInOrder como parametro una funciòn de ese àmbito y no a su mètodo?.. Habia leido algo que para pasar un puntero de una funcion es distinto que pasar un puntero de un mètodo. Como lo hago entocnes?? MUCHAS GRACIAS!