C++ - Klassen: Vertiefung
Pointer zu Member: Beispiel (Hauptroutine)
int main() { void (Receiver::* Message1)(int) = &(Receiver::Receive1); void (Receiver::* Message2)(int) = &(Receiver::Receive2); char Receiver::* pcharField1 = &(Receiver::charField1); double Receiver::* pdoubleField = &(Receiver::doubleField); char Receiver::* pcharField2 = &(Receiver::charField2); int Receiver::* pintField = &(Receiver::intField); Receiver *pr1 = new SpecialReceiver; Receiver *pr2 = new Receiver; send(*pr1, Message1, 111); send(*pr2, Message2, 222); cout << "Offsets in [Receiver]:" << endl << "Receiver::charField1 - " << unsigned(pcharField1) << endl << "Receiver::doubleField - " << unsigned(pdoubleField) << endl << "Receiver::charField2 - " << unsigned(pcharField2) << endl << "Receiver::intField - " << unsigned(pintField) << endl; cout << "Adresses in <r1>:" << endl << hex << "pr1->charField1 - " << unsigned(&(pr1->*pcharField1)) << endl << "pr1->doubleField - " << unsigned(&(pr1->*pdoubleField)) << endl << "pr1->charField2 - " << unsigned(&(pr1->*pcharField2)) << endl << "pr1->intField - " << unsigned(&(pr1->*pintField)) << endl; delete pr1; // if Receiver needs a destructor here, delete pr2; // it should be a virtual one. return 0; }