C++中,是否可以循环访问一个结构体的各个域(每个域的类型和大小不一定相同),该怎么处理
C++中,是否可以循环访问一个结构体的各个域(每个域的类型和大小不一定相同)
虽然这个问题有点傻帽,但是像java中有反射机制,可以很方便的做到,可对于C++中,是否可能实现类型数组一样,采用下标访问一个域【住:结构体的每个域类型不一定相同】
如一个结构体:
typedef struct _ITEM{
string uName;
int age;
float weight;
float height;
String sex;
}ITEM,*PITEM;
是否可以实现如下访问:ITEM[0] 就是范围uName,ITEM[1]就可以获得age,ITEM[2]可以获得weight ....
当然,直接这样访问是不行的,有没有方法可以实现这样访问呢??哪位C++牛人指点迷津,必然重谢....
------解决方案--------------------
全部用 指针.
然后,你懂的
------解决方案--------------------
------解决方案--------------------
莫非要用模板。
------解决方案--------------------
c++, 反射, 看 mfc ...
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
楼主如果要了解C++的反射,可以去看看RTTI。
------解决方案--------------------
------解决方案--------------------
重载[] +末班能够实现,不过每个新的结构就有新重载这点很麻烦,也没必要这样处理。
------解决方案--------------------
虽然这个问题有点傻帽,但是像java中有反射机制,可以很方便的做到,可对于C++中,是否可能实现类型数组一样,采用下标访问一个域【住:结构体的每个域类型不一定相同】
如一个结构体:
typedef struct _ITEM{
string uName;
int age;
float weight;
float height;
String sex;
}ITEM,*PITEM;
是否可以实现如下访问:ITEM[0] 就是范围uName,ITEM[1]就可以获得age,ITEM[2]可以获得weight ....
当然,直接这样访问是不行的,有没有方法可以实现这样访问呢??哪位C++牛人指点迷津,必然重谢....
------解决方案--------------------
全部用 指针.
然后,你懂的
------解决方案--------------------
------解决方案--------------------
莫非要用模板。
------解决方案--------------------
c++, 反射, 看 mfc ...
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
楼主如果要了解C++的反射,可以去看看RTTI。
------解决方案--------------------
------解决方案--------------------
重载[] +末班能够实现,不过每个新的结构就有新重载这点很麻烦,也没必要这样处理。
------解决方案--------------------