Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Osoittimet funktioihin

Jäynis [10.12.2004 11:15:26]

#

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++

sqwiik [10.12.2004 12:22:55]

#

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)());

Jäynis [10.12.2004 14:47:59]

#

No nyt pelittää, kiitoksia sqwiik!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta