1. ホーム
  2. c++

[解決済み】C++のenumクラスはメソッドを持つことができますか?

2022-04-13 10:46:17

質問

2つの値を持つenumクラスがあり、ある値を受け取るメソッドを作成したい。 もう1つを返します。また、型安全性を確保したいのですが(だから、enumではなくenumクラスを使っています)。

http://www.cplusplus.com/doc/tutorial/other_data_types/ は、メソッドについて何も言及していません。 しかし、どんなタイプのクラスでもメソッドを持つことができるという印象を持ちました。

どのように解決するのですか?

いいえ、できません。

というのは理解できるのですが enum class の部分は、C++11 の強く型付けされた列挙型のためのものであることを意味するように見えるかもしれません。 enum があります。 class の形質もありますが、そうではありません。私の推測では、このキーワードの選択は、C++11以前にスコープ付き列挙型を取得するために使用したパターンに触発されたものだと思われます。

class Foo {
public:
  enum {BAR, BAZ};
};

しかし、それはあくまで構文上の話です。もう一度言います。 enum classclass .