簡體   English   中英

C++在兩個頭文件中包含一個類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM