2011-03-22 8 views
0

이 코드의 문제점은 무엇입니까?오류 : '.'토큰 앞에 예상 주 표현식이

오류 :에 호출 일치 기능 'PositionInfo :: PositionInfo()'편집

:

TIA

#include"PositionInfo.h" 

bool DecisionTree::Decision(Agent & agent) { 

PositionInfo Player_position; 
double metr=Player_position.GetBallDistToTeammate(5); 

if (agent.GetSelf().IsKickable()) { 

Kicker::instance().KickBall(agent,agent.GetWorldState().GetTeammate(5).GetPos(),metr); 

} 
} 

는 나는이 오류가 발생했습니다 이제 코드를 변경

에 따른 johnsyweb 응답 :

in Positi

PositionInfo(WorldState *pWorldState, InfoState *pInfoState); 

을하고 난 DecisionTree에 같이 넣어 : 우리는 다음과 같이이 onInfo이 PositionInfo::GetBallDistToTeammate(5)을해야하기 때문에

PositionInfo Player_position(WorldState *pWorldState, InfoState *pInfoState); 

    double met=Player_position//but here IDE doesnt let me to put GetBallDistToTeammate() 
+0

"PositionInfo"의 생성자에 대한 인수가 무엇인지 알아 내 결과를 제공하려면 * "PositionInfo.h"에서 코드 *를 읽어야합니다. – Johnsyweb

+0

'PositionInfo Player_position (WorldState * pWorldState, InfoState * pInfoState);은 (는) 올바른 구문이 아닙니다. 여기에 유효한 객체에 대한 포인터를 전달해야합니다 ('PositionInfo Player_position (NULL, NULL);)이 아무런 도움이되지 않는다고 가정하십시오. – Johnsyweb

답변

1

PositionInfo은 클래스입니다. GetBallDistToTeammate()은 방법입니다.

함수의 이름과 인수의 수를 감안할 때 static 메서드는 해당 정보와의 거리를 계산할 수 없다고 제안합니다. 이와 같이

당신이 당신의 편집에서 (위치를 설정하기 위해 DecisionTree의 구성원으로 아마 PositionInfo (의이 player_position를 호출하자)의 인스턴스를 생성하고 아마 그것을 바탕으로 다른 방법을 호출해야하는 것, 그 위치가 설정됩니다 생성자PositionInfo::PositionInfo()에서 적어도 인수가 하나 인 이 필요합니다.

DecisionTree::Decision()에서 player_position.GetBallDistToTeammate(5)으로 전화를 걸어 몇 미터를 되 찾을 수 있습니다.

+0

감사하지만이 문장에서 당신이 의미하는 바를 이해하지 못했습니다 : 그것의 position.i 설정 내 질문에 plz 참조 정확하거나 누락 된 sth 기타 – Arash

+0

@ 래시 : 그에 따라 내 대답을 업데이 트했습니다.'PositionInfo :: PositionInfo()'에 대한 인수가 무엇인지 알아야하고'PositionInfo Player_position ('* <올바른 인수는 여기에 * *')'을 구성해야합니다. – Johnsyweb

+0

나는 내 질문을 편집했다. plz check, thanks – Arash

2

가 있습니까? 나는 이것이 정적 함수라고 가정한다. .은 정적 멤버에 액세스하기 위해 C++에서 Java/C# 및 ::에 사용됩니다. 당신의 편집 질문 그것은 PositionInfo::GetBallDistToTeamMate처럼 보이는

에 대응

는 정적 멤버 함수가 아닙니다. 메소드를 호출하려면 위치 정보의 인스턴스 (예 : 해당 유형의 변수)가 필요합니다. 함수에 하나가있는 것처럼 보이지 않으므로 DecisionTree의 멤버로 하나가있을 수 있습니까? 더 많은 정보없이 말하기는 어렵습니다.

4

클래스 이름이 기본 표현식이 아닙니다. PositionInfo 유형의 객체를 만들고이를 사용하여 GetBallDistToTeammate을 호출하거나 PositionInfo::을 사용해야합니다.

관련 문제