所以如果我有一个结构如下:
struct MyObject {
int x;
int y;
};
有没有办法在不知道名字的情况下获取或操纵MyObject的数据成员?
换句话说,实现同样的目的:
MyObject.x = 10;
,但鉴于我不知道MyObject的数据成员名为x ..
这样的事情:
MyObject[0] = 10; // x = MyObject's first data member....
MyObject[1] = 20; // y = MyObject's second data member....
答案 0 :(得分:0)
您可以使用匿名联盟
Union u {
Myobject obj;
Int a[2];
};
// U.a[0] corresponds to u.obj.x
// U.a[1] corresponds to u.obj.y
//
请注意,我认为obj必须是POD才能实现。
答案 1 :(得分:0)
void func(void* data)
{
int* a = (int*) data;
*a++ = 10;
*a++ = 20;
}
会改变一个对象。但恕我直言,你在学习“实例与课程”
的方式