Visual C++ POSITION用法解释,POSITION是什么?

转载 2015年07月10日 13:26:28

POSITION是MFC模板类库中经常使用的一个数据类型,我们从它的定义可以看出,其实,它就是一个指针。

// abstract iteration position

struct __POSITION { };

typedef __POSITION* POSITION;

MFC给出的注释是:一个抽象的迭代位置,既然是抽象,也就是没有给定具体的数据类型,以满足不同的模板参数的需要。

在CList中,经常会用到POSITION作为引用参数,或者作为返回值。下面,我们就举2个简单的例子,来帮助大家理解这个数据类型,不过在此之前,我要啰嗦一下,因为有很多人对__POSITION这个空结构体,表示怀疑,似乎这成为了他们理解的障碍。既然是一个空的结构体,怎么能用它来定义指针呢?

其实,C++编译器,不会将一个空的结构体完全看成是空的,编译器会为它分配1byte的内存,其实说白了__POSITION这个结构体,就相当于一个unsigned char的类型,所以__POSITION也就相当于是unsigned char,也就是Windows里面的BYTE类型,从而POSITION也就有了一个可以等价的形式,那就是BYTE*。

我们举CList中2个典型的成员函数作为讲解的重点,当然,大家应该知道CList是一个链表数据结构。下面看这两个函数:

1. POSITION GetHeadPosition() const;

显而易见,这个函数,是用来获取链表头的,它的返回值是一个POSITION,其实也就是一个指针。这个指针代表了谁?当然,就是你一直想要的链表头在链表中的指针,这个指针是new出来的,你绝对不能擅自的将这个指针delete掉。

2. TYPE& GetAt(POSITION position);

这个函数,看起来,比较怪。它的唯一的入参是一个指针,其实,有可能就是你刚刚用GetHeadPosition获得的头节点指针。这个函数的意思,也就是,需要你提供一个节点的地址,然后,CList会遍历整条链,去寻找并返回符合这个地址的节点数据。

废话了那么多,一言以蔽之,毕其功于一役,换句话说就是:

POSITION,你可以把它看成是一个学号,有了它,你就可以找到任何一个你朝思暮想的小美眉了。

POSITION用法解释

POSITION是MFC模板类库中经常使用的一个数据类型,我们从它的定义可以看出,其实,它就是一个指针。 // abstract iteration position struct __POSIT...
  • L_Andy
  • L_Andy
  • 2013年12月23日 18:55
  • 7089

MFC中POSITION类详解

本文转载自: POSITION用法解释 VC6.0 MFC中:POSITION用法解释 MFC中POSITION究竟是一个什么类型,CStringList类解释  关于MFC的POSITION 来...
  • gongxifacai_believe
  • gongxifacai_believe
  • 2016年03月26日 11:41
  • 1066

MFC总结之CListCtrl用法及技巧(一)

本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅。主要包括以下十三点内容:基本操作、获取选中行的...
  • zwgdft
  • zwgdft
  • 2012年05月15日 11:14
  • 30270

C++控制台操作(基本操作的代码)

控制台窗口界面编程控制 〇、摘要 一、概述 二、控制台文本窗口的一般控制步骤 三、控制台窗口操作 四、文本属性操作 五、文本输出 六、文本操作示例 七、滚动和移动 八...
  • stude
  • stude
  • 2012年06月08日 13:35
  • 43074

position的使用方法

绝对的定位:position:absolute p{ position:absolute; right:50px;/*向右移动50px*/ top:50px;/*向下移动50px*/ } 相对的定...
  • wq985113211
  • wq985113211
  • 2015年08月04日 10:02
  • 88

position

CSS:position position拥有三种定位机制:静态定位、相对定位、绝对定位 相对定位:相对于自身原有位置进行偏移,仍处于标准文档流中,随机拥有偏移属性和z-index属性 positio...
  • golden_wheat
  • golden_wheat
  • 2017年03月14日 19:23
  • 179

POSITION用法解释,POSITION是什么?

POSITION是MFC模板类库中经常使用的一个数据类型,我们从它的定义可以看出,其实,它就是一个指针。 // abstract iteration position struct __POSIT...
  • yueguangbuxiu
  • yueguangbuxiu
  • 2012年03月01日 19:07
  • 192

Web前端基础(CSS position的正确用法)

在暑假找实习的时候,折800的技术一面时问我的一道问题:position属性的relative以及absolute的区别是什么?   很惭愧,当时竟然把两者弄混了,现在好好来整理一下...   任何元...
  • u011318165
  • u011318165
  • 2015年08月15日 20:58
  • 1174

html position 用法

**Html position(static、relative、absolute、fixed)** position的四个属性值: 1.relative 2.absolute 3.fixed 4....
  • amnotsuperior
  • amnotsuperior
  • 2015年10月05日 13:46
  • 340

position

Position的浅谈 position有四种属性:                                 position:static默认值,没有定位,元素出现在正常的流中,忽略(t...
  • theBATes
  • theBATes
  • 2016年07月14日 08:50
  • 83
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Visual C++ POSITION用法解释,POSITION是什么?
举报原因:
原因补充:

(最多只允许输入30个字)