2017-02-21 95 views
-7

所以我期待在虛幻文檔瀏覽: https://docs.unrealengine.com/latest/INT/Programming/QuickStart/3/index.html爲什麼.h文件中的.cpp文件中的所有變量都不是?

在第二步,他們在.h文件中創建一個浮動RunningTime和步驟3中cpp文件,我的理解使用它。我不明白的是在cpp文件中,他們創建了FVector NewLocationfloat DeltaHeight,但他們沒有將這些添加到.h。

爲什麼在.h和其餘的運行時間不是? .h文件中的數據有什麼特別之處?

感謝

編輯:

我理解的範圍方面。我不明確的道歉。我的困惑是RunningTime沒有被設置在任何地方。它被用在cpp中,在Tick函數中,但值是...什麼?我在虛幻引擎中運行了它,它可以工作,但(theValueOf)RunningTime是什麼?

+0

如果我正確解釋該指南,他們需要'RunningTime'在對函數的調用之間保持不變,以便它們添加一個全局變量。他們不需要'NewLocation'來在兩次調用之間保持聯繫,因此他們添加了一個局部變量。 –

回答

0

您指出本教程的目的是創建類AFloatingActor,然後可以實例化該類。所述RunningTime變量是類的接口的一部分,並且由於它被定義爲公共

public: 
    float RunningTime; 

它可以在類外部訪問(看公共/私有類成員和方法)。

與此相反,FVector NewLocationfloat DeltaHeight是僅在方法AFloatingActor::Tick中使用的局部變量。因爲它們只用於這個成員(函數),而不用在類中任何地方,它們既不是類接口的一部分,也不需要它們是類變量。

如果它們在.h文件中(因此是一個類變量),那麼當類被實例化時它們將被創建,並且只要該類是保持活動狀態。但是沒有必要這樣做,因此它們在調用AFloatingActor::Tick時創建,它們完成它們的部分,然後被銷燬,因爲它們是該方法的局部變量。

這也是第二個問題「關於.h文件中的數據有什麼特別之處?」的答案。

總結一下: 在你編寫類接口的類的.h文件中。它包括

  • 公共變量/方法:這是變量/是在類的外部訪問
  • 私有變量/方法這個類的方法:這個變量/方法只有在這個課堂上使用,他們可以不能從外部訪問,並與這個類的所有方法都共享
  • 保護的變量/方法:看例如這裏SO: private vs. protected variables

類實現寫一個類的.cpp文件(執行每種方法)。

欲瞭解更多信息,查看示例here

+0

我瞭解範圍方面。我不明確的道歉。我的困惑是RunningTime沒有被設置在任何地方。它被用在cpp中,在Tick函數中,但值是...什麼?我在虛幻引擎中運行了它,它可以工作,但(theValueOf)RunningTime是什麼? –

+0

對不起,我的理解完全不同。但是你的問題的答案在我的回答中是「隱藏的」。由於RunningTime是公共成員(因此可以從類外部設置),因此可能(不確定,因爲我只看到類定義)在使用此類的代碼中設置。可能在一個循環中,並且在每次迭代中它的值可能會改變。可能是因爲我不知道它是如何被使用的,但是這樣做是合乎邏輯的。但它需要在初始化類時設置,因爲類成員的默認值是未定義的,你肯定不想... – maetulj

+0

多數民衆贊成在我後來的想法。 RunningTime由另一個類設置,然後在此Tick類中使用。而它被使用的方式意味着命名必須是特定的,以便其他類可以找到並使用它。所以,作爲一個測試,我嘗試將RunningTime重命名爲BlaBloopTime,並且...程序仍然正確運行。所以,我仍然對它的工作方式感到困惑。可能是文檔中的錯誤?我的結論是RunningTime的價值並不重要。今晚我會嘗試去除它出現的RunningTime,然後看看錐體是否還會抖動。謝謝 –

相關問題