我对 C++ 中的以下代码有疑问:
typedef struct {
int id;
int age;
} Group1;
typedef struct {
int id;
char name;
float time;
} Group2;
typedef union {
Group1 group1;
Group2 group2;
} ServiceData;
typedef struct {
ServiceData data;
} Time;
然后我有一个变量:
Group1 * group1;
group1 = new Group1;
group1->id = 10;
group1->age = 20;
然后有两个方法是这样定义的:
void method1(ServiceData * data) {
//inside the method call method hello
hello(data);
};
void hello(Group1 *group1) {
printf("%d",group1->id);
}
我method1
这样称呼:
method1((ServiceData *)group1);
但是在里面method1
,当参数group1
传给method的时候hello()
,我想拿到里面的id的值group1
。我需要做任何演员hello
阵容吗?或者在里面method1
,我需要(group*)
在传递给它之前将它投射到hello()
吗?