通知
すべてクリア
04/01/2021 1:27 am
enum(c++)の使用方法で1点質問となります。
複数のクラスで共通のenumを使用したい場合(例:Playerと敵で共通の攻撃属性を設定する)、
上記例の場合では、
・Playerと敵とは別のクラスを作成してenumを定義
・Playerか敵のどちらかのクラスにenumを定義
のどちらがよいのでしょうか。
(最終課題作成で上記例のような使い方をしていますが、1つ目の方法にしています)
enumを定義したクラス以外のヘッダーファイル(.hのファイル)でenumの変数を作成する際、
enumを定義したクラスのヘッダーファイルをインクルードしないと
ビルドエラー(class ~で宣言にすると互換性がない旨のエラーが出る)になるので確認しました。
04/01/2021 1:28 am
一番いい方法はPlayerと敵の親クラスでpublicとかprotectedでenumを定義する方法がいいです。
Playerと敵の親クラスが違う場合、2つ目の「Playerか敵のどちらかのクラスにenumを定義」で大丈夫です。
ただ、定義する場所はpublicにしないと参照できません。(private, protectedはビルドエラー発生)
Playerクラスに定義した場合、定義したenumを使う時には必ずenumを定義したクラスのヘッダーファイルを追加してください。
04/01/2021 1:28 am
ご回答ありがとうございます。
Playerと敵の親クラスが違う場合に関して、追加でお聞きしたいのですが、
"どちらかのクラスにenumを定義"でよい理由もお教えいただけないでしょうか。
04/01/2021 1:29 am
普通はenumを定義するために新しいクラスは作りません。