Chcę utworzyć klasę, która obsługuje zdarzenia. W tym celu chcę podstawić do zdarzeń adresy funkcji innej klasy
czyli jakby
TNotifyEvent = procedure (Sender : TObject) of object
jak zadeklarować to w c++?
mam...
#include <cstdlib>
#include <iostream>
using namespace std;
class
TKomunikaty {
public:
void KomunikatPrzed(void *){
cout << "Komunikat przed funkcją" << endl;
}
void KomunikatZa(void *){
cout << "Komunikat za funkcją" << endl;
}
void KomunikatTrzeci(void *){
cout << "Można podmienić funkcję wewnętrzną" << endl;
}
};
class
TKlasa {
protected:
public:
void (*OnBeforeNapiszTekst)(void *);
void (*OnAfterNapiszTekst)(void *);
void NapiszTekst(char *tekst) {
if (OnBeforeNapiszTekst)
OnBeforeNapiszTekst(this);
cout << tekst << endl;
if (OnAfterNapiszTekst)
OnAfterNapiszTekst(this);
};
};
int main(int argc, char *argv[])
{
TKlasa my_class;
TKomunikaty kom;
my_class.OnBeforeNapiszTekst = kom.KomunikatPrzed;
my_class.OnAfterNapiszTekst = &KomunikatZa;
my_class.NapiszTekst("Tekst");
my_class.OnBeforeNapiszTekst = &KomunikatTrzeci;
my_class.NapiszTekst("I teraz wszystko gra");
system("PAUSE");
return EXIT_SUCCESS;
}