Eli ongelma on seuraavanlainen,en osaa oikein selittää mut koodi kertoo enemmän kuin tuhat sanaa XD
#include <iostream> #include <stdlib.h> #include <conio.h> //getch() using namespace std; class MunLuokka { public: int (*ptrFunktio)(); //tähän ois tarkotus varastoida käytettävän //funktion osoite ja tätä kautta kutsua sitä MunLuokka(int (*HaluttuFunktio)); }; MunLuokka::MunLuokka(int (*HaluttuFunktio)()) { ptrFunktio=HaluttuFunktio; } int KaytettavaFunktio() //funktio testausta varten { return 1337; } int main(int argc, char *argv[]) { int i; MunLuokka luokka(&KaytettavaFunktio); i=luokka.ptrFunktio(); cout<<i<<endl; getch(); return 0; }
Nyt C++ velhot kysyn teiltä, mikä tosson vikana??
Käytän Dev-C++
Muistelisin, että funktioon ei voida käyttää &-merkintää, vaan funktio on jo itsessään viittaus. Eli koeta muuttaa
//Tämä... MunLuokka luokka(&KaytettavaFunktio); //...tällaiseksi ja MunLuokka luokka(KaytettavaFunktio); //alustaja MunLuokka(int (*HaluttuFunktio)); //tällaiseksi MunLuokka(int (*HaluttuFunktio)());
No nyt pelittää, kiitoksia sqwiik!
Aihe on jo aika vanha, joten et voi enää vastata siihen.