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

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

Mary-Kate Olsen
풀어 주다: 2024-10-31 01:45:29
원래의
1041명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿