Eu tenho uma estrutura com dois membros, por exemplo:
struct DataSet {
int x;
int y;
};
... e eu tenho que acessar aqueles em um método, mas apenas um de cada vez, por exemplo:
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);
Saída que gostaria de ter:
16
36
O que devo fazer quando tiver que resolver um problema como este? Existe um tipo de dados que pode acessar um membro?
O @ ocket8888
—
super
c++possui ponteiro para membros, portanto, não há necessidade de hacks de ponteiro personalizados para fazer esse trabalho.
@eerorika Você está certo. Anteriormente, eu tinha duas strings como membros, mas as alterei para int. Esqueci de remover o "std ::".
—
Adrian
dsm = 0para acessarxedsm = 4acessary, e acessaria como gostariaint val = int(*(&ds+dsm)).