c++ - 调试——类/对象的东西,菜鸟问题

标签 c++ object

请把这段代码拆开,让它变得复杂和难以阅读,我宁愿把困难的方法学一次,也不愿以错误的方式多次学习同样的东西。

基类如下:

class baseMob{
private:
    int _healthMax;
    int _healthCurrent;
    int _manaMax;
    int _manaCurrent;
    int _experiencePoints;
public:
    //Set max Hp
    void setHealthMax(int);
    //Get max Hp
    int getHealthMax();
    //Set Current Hp
    void setCurrentHealth(int);
    //Get Current Health
    int getCurrentHealth();
    //Set Max Mana
    void setMaxMana(int);
    //Get Max Mana
    int getMaxMana();
    //Set Current Mana
    void setCurrentMana(int);
    //Get Current Mana 
    int getCurrentMana();
    //getMob Exp on kill
    int getExperiencePoints();
    //Set mob Exp points
    void setExperiencePoints(int);
//leaving out the member functions for space conservation

};

我试图创建的个体生物是绿色粘液,我正试图通过我创建的默认构造函数创建它...

   class greenSlime: private baseMob{
    public:
        greenSlime(){
            setHealthMax(100);
            setMaxMana(100);
            setCurrentHealth(100);
            setCurrentMana(100);
            setExperiencePoints(150);
        }
    };

我的主要功能现在看起来像这样:

 greenSlime slime();
    for(; slime.getCurrentHealth() >= 0; slime.setCurrentHealth(-1)){
        cout << "The current health of the slime is: " << slime.getCurrentHealth() << endl;
        if (slime.getCurrentHealth() <= 0 ){
            cout << "Player is awarded with: " << slime.getExperiencePoints() << " Experience. ";
        }
    }

如果有人想撕毁它并让我看起来像个 SCSS ,我将非常感谢您的帮助。

我目前遇到的错误是:

Project1.cpp:107: error: request for member getCurrentHealth' inslime', is non-class type `greenSlime ()()'

以及其他相同类型的错误。

Tl;Dr:类实现不起作用,当我可能已经发布了大约 1/10 并且仍然有意义时发布了我的所有源代码,并且很想有人告诉我为什么它不起作用以及如何我很糟糕。

最佳答案

问题是编译器认为 slime 声明行是另一种类型的预声明,因为 greenSlime 没有带参数的构造函数。

你可以通过不在 slime 后面加上括号来解决这个问题。

// greenSlime slime();
greenSlime slime;

对于您不理解的奇怪错误,我可以提供绝对最佳的建议。举一个较小的问题示例可以更容易地发现问题所在。

这是我为了测试而写的。

struct Foo {
    Foo() {}
    void bar() {}
};

int main(int argc, char ** argv) {
    Foo foo;
    foo.bar();
    return 0;
}

关于c++ - 调试——类/对象的东西,菜鸟问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8751155/

相关文章:

c++ - segmentation 故障的常见原因的明确列表

c++ - 模板链接列表编译错误

c++ - 临时对象在 C++ 中的行为如何?

java - 对象转换模式

javascript - 声明的 javascript 对象设置为空值

c++ - 在 C++ 容器中高效存储多态游戏对象

javascript - 数组元素和对象属性比较返回 false

android - 简单的 C++ 异步 http 客户端

c++ - 为什么这个const成员函数允许修改一个成员变量呢?

reactjs - 如何为GLTF react-three-fiber分配 Material