我的问题与 C++ 函数中的参数有关。有时,您可能期望一个函数可以接受不同类型的参数,据我所知,这可以通过两种方式实现。一种是使用C++新特性:函数重载(多态),另一种是使用'C'函数方式,如下例所示:
struct type0
{
int a;
};
struct type1
{
int a;
int b;
};
struct type2
{
int a;
int b;
int c;
};
void fun(int type, void *arg_structure)
{
switch (type)
{
case 0:
{
struct type0 *mytype = (struct type0 *)(arg_structure);
cout<<"a = "<<mytype->a<<endl;
break;
}
case 1:
{
struct type1 * mytype= (struct type1 *)(arg_structure);
cout<<"b = "<<mytype->b<<endl;
break;
}
case 2:
{
struct type2 *mytype = (struct type2 *)(arg_structure);
cout<<"c = "<<mytype->c<<endl;
break;
}
default:
break;
}
}
int main ()
{
struct type2 temp;
temp.a = 1;
temp.b = 2;
temp.c = 3;
fun(2,(void*)(&temp));
return 0;
}
我的问题是:还有其他方法可以在 C++ 中获得可变的函数参数结构吗?谢谢!