[Battery Collector②と③] Pickup.h, Pickup.cpp, Forceinlineについて | UE4&5 Forum | Tech Stadium Forum

通知
すべてクリア

[Battery Collector②と③] Pickup.h, Pickup.cpp, Forceinlineについて  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/01/2021 1:22 am  

Battery Collector②と③のレクチャーの範囲で、以下3点質問となります。

[質問1]
ファイル名:Pickup.h
Class UStaticMeshComponent* PickupMeshでUStaticMeshComponent(ポインタ)型のクラス宣言していますが、
ポインタ型のクラスを宣言する際は、
インクルードではなく、上記の前方宣言でクラス宣言をした方が良いのでしょうか。
(インクルードが少なくなる以外で利点があるようでしたらお教えいただきたいです)

[質問2]
ファイル名:Pickup.cpp
CreateDefaultSubobjectでUStaticMeshComponentのオブジェクトを作成していますが、
"Components/StaticMeshComponent.h"をインクルードしなくてもビルドが通る理由は何なのでしょうか。

[質問3]
Forceinlineはどのような操作をしたい場合に使用することが多いのでしょうか。
(inlineとどう使い分けるべきかの確認となります)


引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
04/01/2021 1:23 am  

1.インクルードを少なくなるためのです。UE4は非常に重いのでincludeはなるべく少なくした方がいいです。

2.Pickup.hでCoreMinimal.hをインクルードしてますのでビルドは問題ないです。
CoreMinimal.hは基本的に必要なファイルをインクルードしてるヘッダーファイルです。

3.関数の内容が1~2行ぐらい場合はinlineを付けた方がいいです。
そうすると処理が時間が少し早くなります。
3行以上のコード内容が多い場合はお得がないので使わなくてもいいです。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/01/2021 1:24 am  

2つ目の質問に関して、もう1点ご確認したいのですが、
CoreMinimal.h内のどのヘッダーファイルをインクルードしたことによって、ビルドが問題なくなるのでしょうか。


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
04/01/2021 1:25 am  

すみません。そこまでは把握していません。

pickup.hのCoreMinimal.h
もしくはGameFramework/Actor.hの中のどのファイルの中で
#include "Components/StaticMeshComponent.h"が入ってると思います。

EngineMinimal.hには
#include "Components/StaticMeshComponent.h"をインクルードしています。


返信引用
共有:
タイトルとURLをコピーしました