enum(c++)の使用方法について | UE4&5 Forum | Tech Stadium Forum

enum(c++)の使用方法について
 
通知
すべてクリア

enum(c++)の使用方法について  

  RSS

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

enum(c++)の使用方法で1点質問となります。

複数のクラスで共通のenumを使用したい場合(例:Playerと敵で共通の攻撃属性を設定する)、
上記例の場合では、
・Playerと敵とは別のクラスを作成してenumを定義
・Playerか敵のどちらかのクラスにenumを定義
のどちらがよいのでしょうか。
(最終課題作成で上記例のような使い方をしていますが、1つ目の方法にしています)

enumを定義したクラス以外のヘッダーファイル(.hのファイル)でenumの変数を作成する際、
enumを定義したクラスのヘッダーファイルをインクルードしないと
ビルドエラー(class ~で宣言にすると互換性がない旨のエラーが出る)になるので確認しました。


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

一番いい方法はPlayerと敵の親クラスでpublicとかprotectedでenumを定義する方法がいいです。

Playerと敵の親クラスが違う場合、2つ目の「Playerか敵のどちらかのクラスにenumを定義」で大丈夫です。

ただ、定義する場所はpublicにしないと参照できません。(private, protectedはビルドエラー発生)
Playerクラスに定義した場合、定義したenumを使う時には必ずenumを定義したクラスのヘッダーファイルを追加してください。


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

ご回答ありがとうございます。

Playerと敵の親クラスが違う場合に関して、追加でお聞きしたいのですが、
"どちらかのクラスにenumを定義"でよい理由もお教えいただけないでしょうか。


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

普通はenumを定義するために新しいクラスは作りません。


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