#include struct S { int x, y; void f() { std::cout << "f()\n"; } void g() { std::cout << "g()\n"; } }; int main() { S variable = { 10, 20 }; S variable2 = { 30, 40 }; // Zeiger auf member definieren, Komponente auswählen int S::*attribut = &S::x; // irgendein (int-) Attribut von S void (S::*methode)() = &S::f; // irgendeine (void-) Methode von S std::cout << variable .*attribut << '\n'; std::cout << variable2.*attribut << '\n'; (variable .*methode)(); (variable2.*methode)(); // andere Komponente auswählen attribut = &S::y; methode = &S::g; std::cout << variable .*attribut << '\n'; std::cout << variable2.*attribut << '\n'; (variable .*methode)(); (variable2.*methode)(); // Objekt über Zeiger auswählen S* zeiger = &variable2; std::cout << zeiger->*attribut << '\n'; (zeiger->*methode)(); }