我收到错误“Pokemon.cpp:11:18: error: cannot call member function ‘int Dice::roll()’ without object”
Posted
技术标签:
【中文标题】我收到错误“Pokemon.cpp:11:18: error: cannot call member function ‘int Dice::roll()’ without object”【英文标题】:I'm getting error "Pokemon.cpp:11:18: error: cannot call member function ‘int Dice::roll()’ without object" 【发布时间】:2014-02-12 19:44:46 【问题描述】:口袋妖怪战斗模拟器
我正在构建一个简单的战斗模拟器。它将能够接受用户对 HP、攻击 lv 和防御 lv 的输入。
Pokemon::Pokemon()
healthPoints = attackL = defL=0;
std::string Pname= "";
d20=Dice(20);
d6=Dice(6);
我有 4 个文件 Pokemon.h、Pokemon.cpp、Dice.h、Dice.cpp。 Pokemon 头文件包含
#include <iostream>
#include <string>
#include "Dice.h"
class Pokemon
private:
int healthPoints, attackL, defL;
#include <iostream>
std::string Pname;
Dice d20;
Dice d6;
public:
Pokemon();
bool attack(Pokemon& opponent);
void userBuild();
;
Pokemon.cpp 使用 Pokemon 类来“构建”用户的 pokemon。我被卡住的部分是尝试使用时
Pokemon::bool attack()
d20=Dice.roll()
我收到一个错误“Pokemon.cpp:13:10: error: expected unqualified-id before ‘bool’”
这是关于“布尔攻击”应该做什么的说明
bool 攻击(口袋妖怪和对手)
使用 d20 滚动随机值和攻击奖励和防御奖励 如果攻击者的attackLevel+attackBonus 大于防御者的>>defenseLevel+defenseBonus,则进行伤害掷骰。否则攻击失败 如果攻击落地,掷三个 d6,将它们加起来,这就是伤害 显示样本运行中反映的所有攻击信息 仅当对手因攻击而死亡时返回true,否则返回false
【问题讨论】:
【参考方案1】:实现成员函数的语法是
bool Pokemon::attack(Pokemon& opponent)
...
【讨论】:
我改变了它,现在它返回错误 >Pokemon.cpp:13:6: error: prototype for 'bool Pokemon::attack()' does not match any in class 'Pokemon' bool Pokemon ::attack() ^ Pokemon.h:17:8: error: 候选是: bool Pokemon::attack(Pokemon&) bool attack(Pokemon&对手); ^ 编译失败。 @rubito 因为头文件中的声明声明了一个参数。 @Radiodef 你能解释一下吗? 'bool Pokemon::attack(Pokemon &对手) 会起作用吗? 是的,行得通!谢谢@Radiodef。你们能否为我指出正确的方向,如何使用随机 Dice::roll 类为骰子分配随机值以分配攻击奖励? @rubito:在网上搜索“c++ random dice”以上是关于我收到错误“Pokemon.cpp:11:18: error: cannot call member function ‘int Dice::roll()’ without object”的主要内容,如果未能解决你的问题,请参考以下文章
我收到此错误 NSURLErrorDomain 错误 -999
每当我使用“require”这个词时,我都会收到一个错误,如果我尝试使用 relative_require,我也会收到一个错误