У меня есть класс C ++ main.cpp, в котором я создал класс, подобный следующему:
class MapSearchNode
{
public:
unsigned int x; // the (x,y) positions of the node
unsigned int y;
MapSearchNode() { x = y = 0; }
MapSearchNode( unsigned int px, unsigned int py ) { x=px; y=py; }
float goalDistance( MapSearchNode &nodeGoal );
};
float MapSearchNode::goalDistance( MapSearchNode &nodeGoal )
{
float xd = fabs(float(((float)x - (float)nodeGoal.x)));
float yd = fabs(float(((float)y - (float)nodeGoal.y)));
return xd + yd;
}
int main{
//treatment
}
И он работает нормально, но затем я хотел отделить класс MyClass, поэтому я создал MyClass.hи MyClass.cpp и отделил код следующим образом:
MyClass.h
#ifndef _MAPSEARCHNODE_H
#define _MAPSEARCHNODE_H
class MapSearchNode
{
public:
MapSearchNode();
MapSearchNode( unsigned int px, unsigned int py );
public:
unsigned int x;
unsigned int y;
float goalDistance( MapSearchNode &goalNode );
};
#endif
MyClass.cpp
#include "MapSearchNode.h"
MapSearchNode::MapSearchNode():x(0), y(0))
{}
MapSearchNode::MapSearchNode( unsigned int px, unsigned int py ):x(px), y(py)
{}
float MapSearchNode::goalDistance(MapSearchNode &goalNode ){
float xDistance = fabs(float(((float)x - (float)goalNode.x)));
float yDistance = fabs(float(((float)y - (float)goalNode.y)));
return xDistance + yDistance;
}
Но когда я пытаюсь скомпилировать, у меня естьошибка:
Undefined identifier goalNode;
//for the function goalDistance
Может кто-нибудь объяснить, почему я получаю эту ошибку и как ее исправить.
РЕДАКТИРОВАТЬ: Я надеюсь, что я ничего не забыл сейчас.
РЕДАКТИРОВАТЬ: Ну, большое спасибо тем, кто понизил.Некоторые из нас не такие эксперты, как вы, и им трудно видеть ошибки, даже маленькие!