>백엔드 개발 >C++ >C 열거형이 다른 열거형에서 상속될 수 있습니까?

C 열거형이 다른 열거형에서 상속될 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-31 01:45:291059검색

Can C   Enumerations Inherit from Other Enumerations?

C에서 열거형 상속

캡슐화는 코드 재사용성과 유지 관리성을 향상시키는 기본적인 프로그래밍 원칙입니다. C에서는 상속을 통해 클래스가 기본 클래스로부터 속성과 기능을 상속받을 수 있습니다. 이 개념을 열거형으로 확장할 수 있습니까?

제시되는 질문은 다음과 같습니다. C의 다른 열거형에서 열거형을 상속할 수 있는 방법이 있습니까? 구체적으로:

<code class="cpp">enum eBase 
{
   one=1, two, three
};


enum eDerived: public eBase
{
   four=4, five, six
};</code>

제한 극복

위에 표시된 구문은 직접 지원되지 않지만 유사한 기능을 달성하기 위한 패턴이 있습니다.

<code class="cpp">class Enum
{
public:
    enum
    {
        One = 1,
        Two,
        Last
    };
};

class EnumDeriv : public Enum
{
public:
    enum
    {
        Three = Enum::Last,
        Four,
        Five
    };
};</code>

여기서는 열거형을 포함하는 클래스로 Enum을 정의합니다. EnumDeriv는 Enum에서 공개적으로 상속됩니다. 두 열거형 모두 해당 클래스 내에서 enum 키워드를 사용합니다.

상속된 값 액세스

상속된 값에 액세스하려면 열거형 이름 앞에 클래스 이름을 붙입니다. 예: EnumDeriv::One. Last 상수는 EnumDeriv에서도 액세스할 수 있으므로 원활한 연속성이 가능합니다.

데모

<code class="cpp">int main()
{
    std::cout << EnumDeriv::One << std::endl;
    std::cout << EnumDeriv::Four << std::endl;
    return 0;
}</code>

출력:

1
4

위 내용은 C 열거형이 다른 열거형에서 상속될 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.