【发布时间】:2019-05-16 09:30:30
【问题描述】:
我正在尝试制作一个回合制格斗游戏,并且有一个角色类和一个移动类。
我在开发字符类部分时出现错误,其中有一个函数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
【问题讨论】:
-
错字:
this*-->*this? -
this*?你的意思是*this? -
我建议你退后几步,回到你的书、教程或课堂笔记(或get a few good books阅读)并重新阅读关于指针和如何使用它们的部分。
-
顺便说一句,你很可能想要
TakeTurn(character&, ...),所以你将你的角色作为对原件的引用,而不是副本。 -
谢谢您,问题已解决。我刚刚在 cpp 中完成了我的指针课程,但仍然不能很好地处理它。这是错字问题,*这是正确的。
标签: c++