Kezdőoldal » Számítástechnika » Programozás » Kicsit elakadtam C++-ban....

Kicsit elakadtam C++-ban. Pontosabban, van egy Dog osztályom aminek van 7 tagfüggvénye és ezeket szeretném beletenni egy függvénymutatókat tartalmazó tömbbe, de kivételt dob, mikor ezzel próbálkozom. Mi lehet a probléma? Köszönöm a segítséget!

Figyelt kérdés

#include <iostream>

using namespace std;


class Dog{


public:

void speak()const;

void move()const;

void eat()const;

void growl()const;

void whimper()const;

void rollOver()const;

void playDead()const;

}; // Dog osztály deklarálás vége


//Dog osztály implementálása

#include "Dog.h"


void Dog::speak()const{

cout<<"Woof!\n";

}


void Dog::move()const{

cout<<"Walking to heel...\n";

}


void Dog::eat()const{

cout<<"Gobbling food...\n";

}


void Dog::growl()const{

cout<<"Grrrrrr\n";

}


void Dog::whimper()const{

cout<<"Whining noises...\n";

}


void Dog::rollOver()const{

cout<<"Rolling over...\n";

}


void Dog::playDead()const{

cout<<"Is this the end of Little Caesar?\n";

}


typedef void (Dog::*PDF)()const;

int main(){


const int MAXFUNCTIONS =7;

PDF dogFunctions[MAXFUNCTIONS]={

Dog::speak, //Itt jelez hibát,

Dog::move, //miszerint helytelen a

Dog::eat, //függvényhasználat

Dog::growl,

Dog::whimper,

Dog::rollOver,

Dog::playDead

};


Dog *pDog=0;

int method;

bool quit=false;


while(!quit){


cout<<"(0)Quit (1)Speak (2)Move (3)Eat (4)Growl (5)Whimper (6)Roll over (7)Play Dead: ";

cin>>method;


if(!method){

quit=true;

break;

}

else{

pDog =new Dog;

(pDog->*dogFunctions[method-1])();

delete pDog;

}

}

return 0;

}



#programozás #C++ #szoftverfejleszés
2015. máj. 5. 12:18
 1/2 anonim ***** válasza:
58%
Osztályszinten akarsz hivatkozni, nem osztályszintű metódusokra.
2015. máj. 5. 12:52
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

A tagfüggvények pointerére így hivatkozol:

&Osztály::metódus


Nálad lemaradt a & jel a tömb definícióban.

2015. máj. 5. 13:26
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!