(这个问题可能已经被问得很频繁了,我对这次转发感到抱歉,但我发现的任何东西都没有帮助我,因为我是 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/