C++ 对数组成员使用静态结构
我正在尝试初始化和修改带有数组和成员的静态结构成员变量,因为我们需要两组引用。sturct看起来像是在创建一个静态成员:C++ 对数组成员使用静态结构,c++,arrays,struct,C++,Arrays,Struct,我正在尝试初始化和修改带有数组和成员的静态结构成员变量,因为我们需要两组引用。sturct看起来像是在创建一个静态成员: typedef struct ImgInfo { int extent[6]; double origin[3]; double spacing[3]; }; class myClass { public: static ImgInfo InternalImgInfo; } 我的问题是我无法设置变量。我试过一些方法,但都不管用。如何正确设置
typedef struct ImgInfo
{
int extent[6];
double origin[3];
double spacing[3];
};
class myClass {
public:
static ImgInfo InternalImgInfo;
}
我的问题是我无法设置变量。我试过一些方法,但都不管用。如何正确设置包含数组成员的静态结构
i、 e.以下代码有什么问题:
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;
}
我将提到如何调用这些函数
int extent[6];
double spacing[3];
double origin[3];
// these arrays are filles with good values then:
myClass::GenerateImageInfo(extent,spacing,origin,&myClass::InternalImgInfo);
或
您的代码中没有引用带有
myClass::InternalImgInfo
的静态结构成员。您的for循环表达式也有错误。测试是在中间,+++结束,也不是使用硬编码的数组长度,使用siZoof(数组)/siZeof(数组[0)]。我醒得太久了,谢谢。我不敢相信我做了那件事。最近我换语言太多次了。嗯。。这肯定只是循环表达式。谢谢你抓住了那个黑暗。
int extent[6];
double spacing[3];
double origin[3];
// these arrays are filles with good values then:
myClass::GenerateImageInfo(extent,spacing,origin,&myClass::InternalImgInfo);
myClass::InternalImgInfomyClass = myClass::GenerateImageInfo(extent,spacing,origin);