개인 재정 C ++의 강력한 형식의 열거 형 - 인형

C ++의 강력한 형식의 열거 형 - 인형

비디오: Steam Controller 2024

비디오: Steam Controller 2024
Anonim

프로그래밍은 가독성에 관한 것입니다. 읽을 수없는 프로그램을 작성하고 유지하는 것은 어렵습니다 (실제로는 불가능합니다). 소스 코드 목록을 읽는 부분은 프로그램에 사용 된 번호가 무엇인지 나타내는 것입니다.

#define PI 3. 141592653589793

이 해결책은 개별 값으로도 괜찮지 만, C ++이 제공하는 가장 기본적인 지원은 다음과 같은 유비쿼터스 #define입니다. #define 메커니즘은 전처리 기가 컴파일러보다 먼저 실행되기 때문에 C / C ++의 일부가 아닙니다 (엄격히 말하면). 이에 대한 응답으로 C ++ 2011에서는 상수 표현식 구문을 도입했습니다.

constexpr long double PI = 3. 141592653589793;

constexpr 키워드는 C ++ 텐트에 상수를 가져옵니다. 이 PI에는 다른 C ++ 변수와 같은 실제 유형이 있습니다. C ++은 3.14159와 관련된 오류 메시지보다 PI를 사용하여 오류 메시지를 생성 할 수 있습니다. 상수 표현식은 개별 상수 값에 적합하지만 종종 다음 예제와 같이 자연 상수가 아닌 일련의 사물을 나타냅니다.

아마도이 상수는 상태를 식별하는 데 사용되어 아마도 아마도 다음과 같이 사용됩니다. 상태 객체의 배열에 대한 인덱스 또는 어딘가에있는 데이터베이스의 값.

C ++은 이러한 유형의 상수를 정의하는 메커니즘이 오랫동안 개선되어 왔습니다. 열거 형:

enum STATE {DC_OR_TERRITORY, // ALABAMA를 가져오고, // ALASKA를 가져오고, // ARKANSAS를 두 개 가져옵니다. // … 곧…};

enum 키워드는 "열거 (enumeration)"라고하는 일련의 상수를 도입합니다. 이 경우 열거 형은 STATE라는 이름을 갖습니다. 이 열거 형의 각 요소에는 0에서 시작하여 1 씩 증가하는 값이 할당되므로 DC_OR_TERRITORY는 0으로 정의되고 ALABAMA는 1로 정의됩니다. 다음과 같이 assign 문을 사용하여이 증분 시퀀싱을 재정의 할 수 있습니다.

 -

enum STATE {DC, TERRITORY = 0, ALABAMA, ALASKA, // … 등등 …};

이 버전의 STATE는 값 0이 부여 된 요소 DC를 정의합니다. 그런 다음 새로운 요소 TERRITORY도 정의합니다. 또한 값 0이 할당됩니다. ALABAMA는 이전과 마찬가지로 1을 선택합니다. 실제로, 프로그래머는 열거 형을 사용하여 다음과 같이 매우 읽기 쉬운 코드를 작성할 수 있습니다.
double taxRate (STATE s) {return taxRatesByState [s];}이 접근법의 유일한 문제점은이 열거 형 생각할 수있는 것처럼 새로운 유형을 만들지 않습니다.실제로 표준에 따르면 STATE는 int의 또 다른 이름이며 상수 ALABAMA, ALASKA 등은 모두 const int 유형입니다.

-

void fn (STATE s); void fn (int n); fn (알래스카); // invokes fn (STATE)

2011 표준을 통해 프로그래머는 enum 키워드를 사용하여 완전히 새로운 유형을 만들 수 있습니다. 새 표준 작성자는 기존 코드를 손상시키지 않으므로 표준에서는 다음 예와 같이 열거 유형을 정의하기 위해 추가 키워드를 추가해야합니다.

-

enum class STATE {DC, TERRITORY = 0, ALABAMA, ALASKA, // … 등등 …};

열거 형 클래스는 이제 다른 사용자 정의 클래스와 마찬가지로 본격적인 형식입니다. 다음 두 가지 이유로 더 이상 법적으로 적합하지 않습니다.

int s = ALASKA;

첫째, 상수 ALASKA는 STATE 네임 스페이스 내에서만 정의됩니다. 따라서 상수의 이름은 STATE:: ALASKA입니다. 둘째, 유형은 int가 아니라 STATE입니다. STATE 유형의 값을 int에 대입 할 수 없습니다.

-
상태 s = 상태:: 알래스카; 프로그래머는 상태를 int로 다시 작성할 수 있지만 명시 적으로 수행해야합니다. 암시 적 변환은 열거 클래스로 잘라 내지 않습니다.

int n = (int) STATE:: ALASKA;

이 새로운 enum 유형은 int 이외의 다른 계산 숫자 유형 중 하나를 기반으로 할 수도 있습니다.

enum class STATE: char {DC, // … 나머지 선언문은 동일합니다.

C ++의 강력한 형식의 열거 형 - 인형

편집자의 선택

왜 IOS 응용 프로그램을 개발합니까? - 인형

왜 IOS 응용 프로그램을 개발합니까? - 인형

IOS 앱을 개발해야하는 이유는 무엇입니까? 넌 할 수 있으니까. 왜냐하면 그들은 재미 있기 때문입니다. 그리고 시간이 왔기 때문에. iOS 앱은 계속해서 파열되고 있으며, 많은 개발자들이이 앱을 성공적으로 사용하고 있습니다. iOS 앱을 개발하는 것은 시간 투자가 거의없이 몇 년 동안 자신의 경력에서 가장 재미있을 수 있습니다.

Windows Phone 7 애플리케이션 개발 Dummies 치트 시트 - 인형

Windows Phone 7 애플리케이션 개발 Dummies 치트 시트 - 인형

Windows Phone 7에서 실행할 응용 프로그램에 대한 새로운 아이디어는 Microsoft 웹 사이트에서 무료 Windows Phone Developer Tools를 다운로드하여 시작하십시오. 이 프로세스는 다운로드를 시작하기 전에 PC에서 가지고있는 것을 살펴 봅니다. 이미 더 나은 버전이있는 경우를 대비하여 ...

Android 용으로 개발해야하는 이유는 무엇입니까? - 인형

Android 용으로 개발해야하는 이유는 무엇입니까? - 인형

진짜 질문은 "안드로이드를 개발하지 않겠습니까? "전 세계 수백만 명의 사용자가 앱을 사용할 수있게하려는 경우 또는 작성 및 테스트를 마친 후 앱을 게시하려는 경우 또는 개방형 플랫폼에서 개발하려는 경우 답변을 얻을 수 있습니다. 그러나 당신이 ...

편집자의 선택

TestDriveController를 가지고 나면 iOS 앱 - 더미에 액션을 추가하는 방법

TestDriveController를 가지고 나면 iOS 앱 - 더미에 액션을 추가하는 방법

IOS 앱에 표시되는 인터페이스는 Assistant Editor에서 자동으로 표시하거나 점프 바를 사용하여 탐색 할 수 있으므로 작업을 작성하는 실제 비즈니스는 매우 간단합니다. Interface Builder 편집기에서 관심있는 요소 (Test ...

편집자의 선택

Word 2010에서 테마를 수정하거나 만드는 방법 - dummy

Word 2010에서 테마를 수정하거나 만드는 방법 - dummy

Word 2010에서는 허용되지 않습니다. 자신 만의 테마를 처음부터 만들 수 있지만 기존 테마를 수정하여 나만의 맞춤 테마를 만들 수 있습니다. 기존 테마 색 및 글꼴을 수정하여 시작하십시오. 사용자 정의 색 테마를 작성하려면 다음을 수행하십시오. 색상 → 새 테마 색 작성을 선택하십시오. 새 테마 색 만들기 대화 상자를 사용하여 선택하고 ...

Word 2016에서 표 셀을 병합하는 방법 -

Word 2016에서 표 셀을 병합하는 방법 -

두 개의 셀을 결합하는 완전히 합리적인 방법 Word 2016 표를 하나 또는 두 개의 셀로 나눠서 표 그리기 도구를 사용하는 것입니다. 천국은 다른 방식으로 세포를 합병하거나 쪼개기로 결심한다면 자비를 베푸십시오. 두 개의 셀을 결합하려면 줄을 지우십시오.

Word 2007에서 기존 템플릿을 수정하는 방법 - 인형

Word 2007에서 기존 템플릿을 수정하는 방법 - 인형

두 가지 방법 : 템플릿에서 직접 변경하거나 템플릿을 기반으로하는 문서를 변경하여 간접적으로 수정할 수 있습니다. 두 번째 방법은 스타일 변경과 같은 템플릿 변경 만 적용합니다. 기존 Word 수정 ...