使用带有数组成员的静态结构

时间:2014-05-08 23:39:24

标签: c++ arrays struct

我正在尝试使用数组和成员初始化和修改静态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);

0 个答案:

没有答案