我必须为大学完成一个项目,但我无法弄清楚它是如何完成的。
问题是我想在GameHandler类中分配一个Condition对象(不是指针),如下例所示,但我不能这样做,因为我想到引擎类中包含的Condition.h。所以我无法两次包含Condition类。我怀疑吗?
我能做些什么来获得类似我错误示例的解决方案?
非常感谢!!!
Condition.h:
#ifndef CONDITION_h
#define CONDITION_h
class Condition
{
enum Rank {FIRST, SECOND, THIRD};
void doSomething();
};
#endif
Engine.h
#ifndef ENGINE_h
#define ENGINE_h
#include "Condition.h"
class Engine
{
Condition::Rank getter();
};
#endif
但是现在我有了第三个类,它应该看起来像我要创建一个条件对象(不是指针)。怎么办呢?
GameHandler.h
#ifndef GAMEHANDLER_h
#define GAMEHANDLER_h
#include "Condition.h"
class GameHandler
{
Condition condition_;
condition_.doSomething();
}
#endif
答案 0 :(得分:0)
使用:
#ifndef GAMEHANDLER_h
#define GAMEHANDLER_h
/.../
#endif
会阻止多次包含,因此如果多次包含标题无关紧要
答案 1 :(得分:0)
默认情况下,类成员在C ++中是私有的(更多关于访问说明符here)。尝试将它们声明为公开。
class Condition
{
public:
enum Rank {FIRST, SECOND, THIRD};
void doSomething();
};
另外,你不能在类的声明中调用方法!您必须在方法内部(例如,构造函数)执行此操作,但其中将依赖于您想要执行的操作。
class GameHandler
{
Condition condition_;
public:
GameHandler() {
condition_.doSomething();
}
}