调用嵌套结构的成员,ERROR没有类类型

时间:2012-11-22 00:12:37

标签: c++

在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){}

1 个答案:

答案 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)
{}