C++매 거 진 형식 용법 요약(매 거 진 문자 상수 대체 상수)

3828 단어 C++매 거
C++매 거 진 형식 enum 은 매 거 진 것 을 표시 합 니 다.보통 새로운 형식의 문자 상수,예 를 들 어 enum{January,February,March}을 정의 하 는 데 사 용 됩 니 다.매 거 형식의 역할 영역 은 일반적으로 전체 파일 이나 클래스 내 입 니 다.매 거 진 형식 이 파일 시작 에 정의 되 었 을 때 역할 영역 은 정의 위치 에서 부터 뒤로(함수 내 정 의 는 포함 되 지 않 음).매 거 진 형식 이 클래스 내 에서 정 의 될 때 역할 영역 은 전체 클래스 내 입 니 다.클래스 의 헤더 파일 정의 와 매 거 진 형식 을 초기 화 합 니 다.인 스 턴 스 와 같은 대상 이 있 을 때 매 거 진 형식 은 공간 을 차지 하지 않 고 문자 상수 만 포함 합 니 다.
매개 형식의 정 의 는 전체 폴 더 에 있 을 수도 있 고 클래스 에 있 을 수도 있 습 니 다.전체 폴 더 에 있 을 때 모든 열 거 량 이 같 을 수 없습니다.클래스 내 에 있 을 때,서로 다른 종류의 매 거 상수 가 같 을 수 있 고,영향 을 주지 않 는 다.다음은 구체 적 인 코드 예 시 를 드 리 겠 습 니 다.
1.매 거 진 형식 은 클래스 에 정의 합 니 다(vs 2013 IDE 를 사용 합 니 다)
1.1 콘 솔 프로그램 을 새로 만 든 다음 EnumTest.h,EnumTest.cpp,main.cpp 에 다음 코드 를 추가 합 니 다.
EnumTest.h

#pragma once
typedef unsigned long Item;
 
class CEnumTest
{
public:
	CEnumTest();
	~CEnumTest();
 
	const void show() const;		//   const            ,               
private:
	enum {One=1,Two=2,Three=3};
 
	Item item[Three];
};
EnumTest.cpp

#include "EnumTest.h"
#include <iostream>
 
CEnumTest::CEnumTest()
{
}
 
const void CEnumTest::show() const
{
	std::cout <<"this->Three=="<<this->Three<<std::endl;
}
 
CEnumTest::~CEnumTest()
{
}
main.cpp

#include <iostream>
#include "EnumTest.h"	
 
int main()
{
	CEnumTest *enumTest = new CEnumTest();
	enumTest->show();
 
	system("pause");
	return true;
}
1.2 출력 결 과 는 다음 과 같다.

1.3 총화
클래스 에서 여러 그룹의 문자 상수 를 매 거 진 으로 정의 할 수 있 습 니 다.이 문자 들 은 클래스 의 헤더 파일 에 값 을 표시 하고 할당 할 수 있 습 니 다.이 문자 들 은 상수 가 할당 되 었 지만 하나의 문자 상수 이지 하나의 수치 가 아 닙 니 다.일반적으로 매 거 진 문자 상수 와 switch 를 조합 하여 사용 합 니 다.만약 에 이 매 거 진 문자 상수 가 성형 이나 부동 소수점 형 에 할당 된다 면 C++11 새로운 기준 은 자동 으로 대응 하 는 유형 으로 변 환 됩 니 다.컴 파일 러 는 기본적으로 성형 상수 로 매 거 진 문자 상수 를 표시 합 니 다.
2.매 거 류 정의
매 거 류 의 역할 도 메 인 은 똑 같이 정 의 된 클래스 에 있 지만 매 거 류 는 매 거 를 위 한 클래스 입 니 다.즉,매 거 에 만 사용 할 수 있 습 니 다.
2.1 성명 코드 는 다음 과 같다.

enum class Data1{ First = 1, Second = 2, Third = 3 };
enum class Data2{ First = 7, Second = 8, Fourth = 9 };
2.2 호출 코드 는 다음 과 같다.

#include <iostream>
#include "EnumTest.h"	
 
enum class Data1{ First = 1, Second = 2, Third = 3 };
enum class Data2{ First = 7, Second = 8, Fourth = 9 };
 
int main()
{
	CEnumTest *enumTest = new CEnumTest();
	enumTest->show();
 
	/*   */
	std::cout << "(int)Data1::First==" << (int)Data1::First << std::endl;	//   Data1             ::          Data1::First
	std::cout << "(int)Data2::First==" << (int)Data2::First << std::endl;	//   Data2             ::          Data2::First
 
	system("pause");
	return true;
}
2.3 출력 결 과 는 다음 과 같다.

2.4 총화
위의 결 과 를 통 해 알 수 있 듯 이 매 거 진 클래스 가 정 의 된 후에 직접 역할 영역 으로 연산 자 를 분석 할 수 있 습 니 다.매 거 진 클래스 에 대응 하 는 구성원 상수 Data 1:First 를 직접 호출 하여 상수 로 호출 할 수 있 습 니 다.
예전 에 C 언어 가 매 거 진 일반적인 호출 은 매 거 진 클래스 에서 class 를 제거 하면 되 었 습 니 다.즉,아래 코드 입 니 다.

enum Data1{ First = 1, Second = 2, Third = 3 };
다른 용법 은 위의 두 가지 기본 과 같 으 니 소개 하지 않 겠 습 니 다.
참고 내용:
(제6 판)중국어 판  372-373 쪽
이상 은 C++매 거 진 유형 용법 총화(매 거 진 문자 상수 대체 상수)의 상세 한 내용 입 니 다.더 많은 C+매 거 진 자 료 는 우리 의 다른 관련 글 에 관심 을 가 져 주 십시오!

좋은 웹페이지 즐겨찾기