Ich habe eine Struktur mit zwei Mitgliedern, zum Beispiel:
struct DataSet {
int x;
int y;
};
... und ich muss auf diese in einer Methode zugreifen, aber immer nur auf eine, zum Beispiel:
void foo(StructMember dsm) { // ("StructMember" does not exist)
DataSet ds;
ds.x = 4;
ds.y = 6;
std::cout << ds.dsm * ds.dsm << std::endl;
}
foo(x);
foo(y);
Ausgabe, die ich haben möchte:
16
36
Was soll ich tun, wenn ich ein solches Problem lösen muss? Gibt es einen Datentyp, der auf ein Mitglied zugreifen kann?
c++verfügt über Zeiger auf Mitglieder, sodass keine benutzerdefinierten Zeiger-Hacks erforderlich sind, damit dies funktioniert.
dsm = 0zum Zugriffxunddsm = 4zum Zugriff übergehen undydann wie gewünscht darauf zugreifenint val = int(*(&ds+dsm)).