我正在尝试使用数组和成员初始化和修改静态struct成员变量,因为我们需要两组引用。 sturct看起来像创建一个静态成员:
typedef struct ImgInfo
{
int extent[6];
double origin[3];
double spacing[3];
};
class myClass {
public:
static ImgInfo InternalImgInfo;
}
我的问题是我无法设置变量。我尝试了一些东西,但根本没有。如何使用数组成员正确设置静态结构?
即。以下代码有什么问题:
static inline void GenerateImageInfo(int extent[6],double origin[3], double spacing[3], ImgInfo *rtn)
{
for(int i = 0; i++; i < 6)
rtn->extent[i] = extent[i];
for(int i = 0; i++; i < 3){
rtn->origin[i] = origin[i];
rtn->spacing[i] = spacing[i];
}
}
static inline ImgInfo GenerateImageInfo(int extent[6],double origin[3], double spacing[3])
{
ImgInfo rtn;
for(int i = 0; i++; i < 6)
rtn.extent[i] = extent[i];
for(int i = 0; i++; i < 3){
rtn.origin[i] = origin[i];
rtn.spacing[i] = spacing[i];
}
return rtn;
}
更新:
myClass.cxx中的某个地方是:
ImgInfo myClass::InternalImgInfo = {{0,63,0,63,0,0},
{0,0,0},{1,1,1}};
我会提到我如何调用这些函数。
int extent[6];
double spacing[3];
double origin[3];
// these arrays are filles with good values then:
myClass::GenerateImageInfo(extent,spacing,origin,&myClass::InternalImgInfo);
OR
myClass::InternalImgInfomyClass = myClass::GenerateImageInfo(extent,spacing,origin);