gpt4 book ai didi

c++ - 在其声明文件之外使用对象 (C++)

转载 作者:行者123 更新时间:2023-11-28 05:34:54 24 4
gpt4 key购买 nike

(这个问题可能已经被问得很频繁了,我对这次转发感到抱歉,但我发现的任何东西都没有帮助我,因为我是 c++ 的初学者)

所以这是一个例子来说明我的问题

我有类(class)怪物

class Monster{
public:
Monster();

void attack();

private:
int _health;
int _damage;
};

我有类(class)水平

class Level{
Level();
};

我在我的“main.cpp”中创建了类 Monster 中的对象“snake”

#include "Monster.h"

int main(){

Monster snake;

}

如果我想在我的“Level”类中使用“snake”,我该怎么办?如果我想做“snake.attack();”例如在“Level.cpp”里面?

如果我在“Level.cpp”中再次声明它,它将是一个具有自己属性的独立对象,不是吗?

直到现在,我一直将我的类的成员函数设为静态,所以我可以做“Monster::attack();”在我的程序中的任何地方,但使用这种技术,我不能让多个对象根据它们的属性(snake1、snake2、bat1 等...)做不同的事情

提前感谢您的帮助!(对于可能重复出现的问题感到抱歉)

最佳答案

假定这些片段是您的 .h 文件。

你的 level.cpp 应该是这样的:

#include "level.h"   // its own header
#include "monster.h" // header with Monster::attack() declaration

Level::DoAttack(Monster& monster) { // using snake as parameter.
health = health - monster.attack(); // monster hits us, subtract health.
}

monster.h 会是

class Monster{
public:
Monster();

void attack();

private:
int _health;
int _damage;
};

和怪物.cpp

Monster::attack() {
// code to calculate the attack
}

关于c++ - 在其声明文件之外使用对象 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38545805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com