Ho uno struct con due membri, ad esempio:
struct DataSet {
int x;
int y;
};
... e devo accedervi in un metodo, ma solo uno alla volta, ad esempio:
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);
Uscita che desidero avere:
16
36
Cosa devo fare quando devo risolvere un problema come questo? Esiste un tipo di dati che può accedere a un membro?
c++ha puntatori ai membri, quindi non c'è bisogno di hack di puntatori personalizzati per farlo funzionare.
dsm = 0per accederexedsm = 4per accederey, quindi accederai come loroint val = int(*(&ds+dsm)).