我有两个成员的结构,例如:
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++具有指向成员的指针,因此无需自定义指针hack即可使其工作。
@eerorika你是对的。以前我有两个字符串作为成员,但是我将它们更改为int。我忘了删除“ std ::”。
—
阿德里安
dsm = 0访问x和dsm = 4访问y,那么你访问他们喜欢int val = int(*(&ds+dsm))。