[英]C++ include a class in two header files
我必須為大學完成一個項目,但我不知道如何完成。
問題是我想在 GameHandler 類中分配一個條件對象(不是指針),如下例所示,但我不能這樣做,因為我想到了引擎類中包含的 Condition.h。 所以我無法兩次包含 Condition 類。 我是賴特嗎?
我該怎么做才能獲得像我的錯誤示例一樣有效的解決方案?
十分感謝!!!
條件.h:
#ifndef CONDITION_h
#define CONDITION_h
class Condition
{
enum Rank {FIRST, SECOND, THIRD};
void doSomething();
};
#endif
引擎.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
使用:
#ifndef GAMEHANDLER_h
#define GAMEHANDLER_h
/.../
#endif
將防止多次包含,所以如果你多次包含你的標題並不重要
默認情況下,類成員在 C++ 中是私有的(有關訪問說明符的更多信息,請參見此處)。 嘗試將它們聲明為公開的。
class Condition
{
public:
enum Rank {FIRST, SECOND, THIRD};
void doSomething();
};
此外,您不能在類的聲明中調用方法,您必須在方法(例如,構造函數)中調用方法,但是在哪里將取決於您想要做什么。
class GameHandler
{
Condition condition_;
public:
GameHandler() {
condition_.doSomething();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.