列挙型の拡張: 基本列挙型クラスの継承の探索
C では、列挙型は固定値セットを表す便利な方法を提供します。ただし、既存の列挙クラスから値を継承する必要があるシナリオも考えられます。この質問は、そのような継承を実現する可能性を探ります。
列挙型は他の列挙型を継承できますか?
デフォルトでは、C の列挙型は他の列挙型から継承できません。ただし、クラスベースのアプローチを活用して列挙型の継承をシミュレートすることはできます。
クラスベースの列挙型の継承
次のコードは、基本列挙型と派生列挙型を作成する方法を示しています。クラスの使用:
#include
#include
class Enum
{
public:
enum
{
One = 1,
Two,
Last
};
};
class EnumDeriv : public Enum
{
public:
enum
{
Three = Enum::Last,
Four,
Five
};
};
int main()
{
std::cout この例では、Enum クラスは 3 つの値 (One、Two、Last) を持つ列挙型を定義します。 EnumDeriv クラスは Enum を継承し、さらに 3 つの値 (Three、Four、および Five) を追加して拡張します。
enum 値のスコープはクラス内にあるため、名前の一意性を維持しながら値を継承できます。この場合、曖昧さなく EnumDeriv::One および EnumDeriv::Four にアクセスできます。
クラスベースの列挙型継承の利点
- 列挙型で次のことが可能になります。既存の値のセットを継承および拡張します。
- 列挙型を処理するための一貫した拡張可能な方法を提供します。継承。
- 派生列挙型内で名前の一意性を維持します。
- テンプレートやマクロなどの C の他の機能と組み合わせて使用できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3