У мене є структура з двома членами, наприклад:
struct DataSet {
int x;
int y;
};
..., і мені доводиться отримувати доступ до тих методів, але лише один за одним, наприклад:
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);
Вихід, який я хочу мати:
16
36
Що робити, коли мені доведеться вирішити подібну проблему? Чи існує тип даних, який може отримати доступ до учасника?
@ ocket8888
—
супер
c++має вказівники на членів, тому не потрібно використовувати спеціальні хакерські покажчики, щоб зробити цю роботу.
@eerorika Ви маєте рацію. Раніше в мене були два рядки як члени, але я змінив їх на int. Я забув видалити "std ::".
—
Адріан
dsm = 0до доступуxтаdsm = 4до доступуy, тоді ви отримаєте доступ до них, якint val = int(*(&ds+dsm)).