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