我收到错误“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”的主要内容,如果未能解决你的问题,请参考以下文章

我收到错误:致命错误:索引超出范围

我收到以下错误:[GraphQL 错误]:消息:任务

我收到此错误 NSURLErrorDomain 错误 -999

为啥我收到的 jwt 格式错误?

每当我使用“require”这个词时,我都会收到一个错误,如果我尝试使用 relative_require,我也会收到一个错误

为啥我在尝试使用 fetch 连接 Api 时收到“错误请求”错误 400?