C++ - Klassen: Vertiefung
Pointer auf Klassenmethoden: Beispiel (Implementation)
// File: PoToSMem.cc #include <PoToSMem.h> void Receiver::Receive1(int Arg) { cout << "Receiver Object at " << hex << unsigned(this) << dec << " received message \"Receive1\" and Arg " << Arg << endl; } void Receiver::Receive2(int Arg) { cout << "Receiver Class received message \"Receive2\" and Arg " << Arg << endl; } void sendO(Receiver& r, void (Receiver::* p)(int), int Arg) { (r.*p)(Arg); } #define sendC(Class, Ptr, Arg) (*Ptr)(Arg); int main() { void (Receiver::* Message1)(int) = &(Receiver::Receive1); void (*Message2)(int) = &(Receiver::Receive2); Receiver r1; sendO(r1, Message1, 111); sendC(Receiver, Message2, 222); return 0; }