概括结构访问的高效实用方法?

时间:2011-01-24 15:59:19

标签: c++ templates class struct

我有以下内容:

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或模板在这里是否最佳。关于如何优雅地实现这一点的任何想法?如果我能提供更多说明,请告诉我。

1 个答案:

答案 0 :(得分:9)

怎么样:

template< typename T > void setD( T &t, float f ) { t.d = f; }

注意 struct关键字是小写的,并且结构在结束括号后需要半色;