POSITION은 MFC 템플릿 클래스 라이브러리에서 자주 사용되는 데이터 유형입니다. 정의를 보면 실제로 포인터라는 것을 알 수 있습니다.
//추상 반복 위치
struct POSITION {};
typedef POSITION* POSITION;
MFC에서 제공한 설명은 추상 반복 위치입니다. 즉, 다양한 요구 사항을 충족하기 위해 특정 데이터 유형이 제공되지 않습니다. 템플릿 매개변수가 필요합니다.
CList에서 POSITION은 참조 매개변수 또는 반환 값으로 자주 사용됩니다. 아래에서는 이 데이터 유형의 이해를 돕기 위해 두 가지 간단한 예를 제시할 것입니다. 하지만 그 전에 장황하게 설명하고 싶습니다. 왜냐하면 많은 사람들이 POSITION의 비어 있는 구조에 대해 의구심을 표현하고 이것이 그들의 장애물이 된 것 같기 때문입니다. 이해. 빈 구조체이므로 포인터를 정의하는 데 어떻게 사용할 수 있습니까?
실제로 C++ 컴파일러는 빈 구조를 완전히 비어 있는 것으로 간주하지 않습니다. 실제로 컴파일러는 1바이트의 메모리를 할당합니다. 실제로 POSITION 구조는 unsigned char 유형과 동일하므로 POSITION은 동일합니다. Windows의 BYTE 유형인 unsigned char로 변환되므로 POSITION은 BYTE*와 동일한 형식을 갖습니다.
우리는 CList의 두 가지 일반적인 멤버 함수를 설명의 초점으로 삼았습니다. 물론 CList가 연결 목록 데이터 구조라는 것을 모두가 알아야 합니다. 다음 두 함수를 살펴보겠습니다.
1.POSITION GetHeadPosition() const;
분명히 이 함수는 연결된 목록의 헤드를 가져오는 데 사용되며 반환 값은 실제로 포인터입니다. 이 포인터는 누구를 나타냅니까? 물론, 여러분이 항상 원했던 연결리스트의 연결리스트의 선두에 대한 포인터입니다. 이 포인터는 new에서 온 것이므로, 이 포인터를 무단으로 삭제해서는 안 됩니다.
2. TYPE& GetAt(POSITION 위치);
이 함수는 다소 이상해 보입니다. 유일한 입력 매개변수는 포인터입니다. 실제로 GetHeadPosition을 사용하여 방금 얻은 헤드 노드 포인터일 수도 있습니다. 이 함수의 의미는 노드의 주소를 제공해야 하며 CList가 전체 체인을 탐색하여 이 주소와 일치하는 노드 데이터를 찾아 반환한다는 것입니다.
너무 말도 안 되는 소리, 한 마디로 결과는 한 문장으로 완성됩니다. 즉,
POSITION, 학생증이라고 생각하면 어느 학급의 학생이든 찾을 수 있습니다.
POSITION은 MFC에서 다양한 목록 또는 Array 개체의 인덱스를 저장하여 순회 중에 요소의 위치를 쉽게 식별하는 데 사용됩니다. 실제로 이는 32비트 값이며 해당 내용은 포인터 또는 배열의 인덱스일 수 있습니다.
위 내용은 POSITION 사용법 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!