在main.C中,我试图访问嵌套的结构成员 (g.Fp1.d_status)我收到了错误:
'g.GridPt :: Fp1'没有类型
以下是我的代码。我真的可以使用一些帮助。谢谢。 我试过像g.MarchingDirection :: Fp1.d_status这样的东西, g。& MarchingDirection :: Fp1.d_status,......没有运气。
//Filename: main.C
#include "GridPt.h"
int main()
{
GridPt g;
g.d_lstDistFn;
g.Fp1.d_status; \\ERROR: 'g.GridPt::Fp1' does not have class type
return 0;
}
//Filename: MarchingDirection.h
#ifndef included_MarchingDirection
#define included_MarchingDirection
struct MarchingDirection
{
MarchingDirection(double FValue);
double d_F;
int d_inOut;
char d_status;
};
#endif
//Filename: MarchingDirection.C
#include "MarchingDirection.h"
MarchingDirection::MarchingDirection(double FValue)
: d_F(FValue),
d_inOut(static_cast<int>(FValue)),
d_status('d'){}
//Filename: Grid2D.h
#ifndef included_GridPt
#define included_GridPt
#include "MarchingDirection.h"
#include <cstddef>
struct GridPt
{
GridPt();
double d_x, d_y;
MarchingDirection Fp1(double F=1.0), Fm1(double F=-1.0);
double d_lstDistFn;
};
#endif
//Filename: GridPt.C
#include "GridPt.h"
GridPt::GridPt()
: d_lstDistFn(0.0){}
答案 0 :(得分:1)
你在GridPt结构中声明了Fp1,Fm1函数,它们不是成员
您可以更改为:
struct GridPt
{
GridPt();
double d_x, d_y;
MarchingDirection Fp1, Fm1;
double d_lstDistFn;
};
初始化所有结构成员,如下所示:
GridPt::GridPt()
: d_x(0.0),
d_y(0.0),
Fp1(1.0),
Fm1(-1.0),
d_lstDistFn(0.0)
{}