[c++の作法]classと付けるものと付けないもの | UE4&5 Forum | Tech Stadium Forum

[c++の作法]classと付けるもの...
 
通知
すべてクリア

[c++の作法]classと付けるものと付けないもの  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
05/02/2024 12:43 am  
c++の作法について。
 
独自でクラスを作って他のクラスで使う場合、ヘッダーでの型宣言時にclassと付けることに今更気づきました。
class UStaticMeshComponent* PickupMesh;
classを付けないものもある気がするのですが、この辺りのルールはどういうものになりますでしょうか?(他の言語出身者からすると違和感があり...)
EBatteryPlayState CurrentState;

引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
05/02/2024 12:44 am  

classを付ける物はClassの物に限定されます。
EBatteryPlayStateはクラスではなくenumに見えますので、前にclassを付けてないです。
でもClassの中でもつける物とつけないものが分かれています。
classを付ける理由はincludeなしでそのクラスを宣言するためです。例えばUStaticMeshComponentを使いたい場合、
#include "Components/StaticMeshComponent.h"
を追記する必要があります。

これがないとUStaticMeshComponentは認識できません。

UEのC++ではヘッダーファイルをincludeします。
そこで、そのヘッダーファイルに他にもincludeしているプリプロセッサ ディレクティブがあるとそのヘッダーファイルの読み込みとかが連鎖的に起こってしまい、性能的な問題を起こしたり、ビルドのエラーを吐く可能性があります。

なのでなるべくヘッダーではほかのクラスをincludeせずにそれがclassだと認識させて、cppのファイルの方でincludeさせています。
class宣言はその為に、今宣言しているのがクラスファイルだって事をパソコンに伝えるためのものです。


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