вызвать член вложенной структуры, ERROR не имеет тип класса

В main.C я пытаюсь получить доступ к члену вложенной структуры
(g.Fp1.d_status) и получаю ошибку:

‘g.GridPt :: Fp1’ не имеет типа класса

Ниже мой код. Я действительно могу использовать некоторую помощь. Благодарю.
Я пробовал такие вещи, как g.MarchingDirection :: Fp1.d_status,
г.&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

Решение

Вы объявили функции Fp1, Fm1 внутри структуры GridPt, они не являются членами

Вы можете изменить на:

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector