我有以下内容:
Struct A {
char a;
char b[10];
int c;
float d;
}
Struct B {
float d;
char b[10];
char a;
int c;
bool e;
}
我想创建一个接受结构A或B的泛型函数来访问像:
这样的元素void SetD(A a, float f) { a.d = f; }
将有许多不同的结构(大多数具有相同的元素)和许多功能来操作它们。
我正在尝试概括访问权限,因此我不必将每个方法复制到每个Struct中,从而导致重复的代码。不确定instanceof
或模板在这里是否最佳。关于如何优雅地实现这一点的任何想法?如果我能提供更多说明,请告诉我。
答案 0 :(得分:9)
怎么样:
template< typename T > void setD( T &t, float f ) { t.d = f; }
注意 struct
关键字是小写的,并且结构在结束括号后需要半色;
。