我正在尝试制作回合制格斗游戏,其中有一个角色类和一个移动类。
当我开发字符类部件时出现错误,其中有一个函数TakeTurn(character oppoCharacter,cmove selectedMove,field currentField)。意思是让角色对象对对手角色进行移动。此功能由move类中的两个其他功能组成。首先是拼写此举,而另一个是发起此举。
我已尽一切努力,但仍然无法正常工作。我猜问题出在“ this”指针上,但是我不确定。
在character.cpp文件中:
void character::TakeTurn(character oppoCharacter, cmove chosenMove,field currentField){
chosenMove.SpellMove(this*, oppoCharacter, currentField.FStatusL);
chosenMove.LaunchMove(this*, oppoCharacter, currentField.FStatusL);
}
在character.h文件中:
void TakeTurn(character oppoCharacter, cmove chosenMove,field currentField);
错误消息:
[ 10%] Building CXX object CMakeFiles/gods.dir/character.cpp.o
/Users/otbooster/Downloads/2019up/cpp/gods/character.cpp:35:31: error: expected expression
chosenMove.SpellMove(this*, oppoCharacter, currentField.FStatusL);
^
/Users/otbooster/Downloads/2019up/cpp/gods/character.cpp:36:32: error: expected expression
chosenMove.LaunchMove(this*, oppoCharacter, currentField.FStatusL);
^
2 errors generated.
make[3]: *** [CMakeFiles/gods.dir/character.cpp.o] Error 1
make[2]: *** [CMakeFiles/gods.dir/all] Error 2
make[1]: *** [CMakeFiles/gods.dir/rule] Error 2
make: *** [gods] Error 2
答案 0 :(得分:0)
我认为您想获得this
的参考,在这种情况下,请使用:
chosenMove.LaunchMove(*this...