请问,在TList类中,Items和List有什么区别?

zhgwbzhd 2008-10-31 12:11:28
比如:
TList *LS;


LS = new TList;

...这里有 LS->Add(...);//其中...是一个指针

要访问所插入的值时。

用 LS->List[..];//..是一个值
和 LS->Items[..];

有什么区别啊???
谢谢了
...全文
326 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxw1987628 2008-10-31
  • 打赏
  • 举报
回复

TList *pList =new TList();
TObject *pObject =0;
for(int i=0 ;i < 3 ; ++i)
{
pObject = new TObject() ;
pList->Add( pObject );
ShowMessage( "Add :"+String(
(int)pObject));
}
pObject =0 ;
for( int i = 0 ;i< pList->Count ; i++)
{
// pObject =(TObject*) pList->List[i] ; // return void *
pObject = (TObject*)pList->Items[i] ; // return void *
ShowMessage( "Delete :"+String(
(int)pObject));
delete pObject ;
pObject =0 ;
}
pList->Clear() ; // clear items
delete pList ; // deallocate memory for pList
pList =0 ; // set zero to pList;


其实List属性是返回对象数组的首地址Use List to gain direct access to the Items array.
Items : Lists the object references.
二者都可以用这种下标的方法来取得TList对象里面的元素
yumikoo 2008-10-31
  • 打赏
  • 举报
回复
前者访问的是一个item
而后者访问的是一个结构体,这个结构体可以包含不同数据类型的属性
TripH0101 2008-10-31
  • 打赏
  • 举报
回复
就是这样的
yuanreid 2008-10-31
  • 打赏
  • 举报
回复
List属性是直接访问Items列表地址
Items可以理解成数组,是对Items地址的引用
zhgwbzhd 2008-10-31
  • 打赏
  • 举报
回复
嗨!理解不了,就死机硬背吧。

看来用 List[..]和Items[..]是一样的啊
痞子酷 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jxw1987628 的回复:]
C/C++ code
TList *pList =new TList();
TObject *pObject =0;
for(int i=0 ;i < 3 ; ++i)
{
pObject = new TObject() ;
pList->Add( pObject );
ShowMessage( "Add :"+String(
(int)pObject));
}
pObject =0 ;
for( int i = 0 ;i< pList->Count ; i++)
{
// pObject =(TObject*) pList->List[i] ; // return void *
pObject…
[/Quote]


--
正解!!!
接分!
zhgwbzhd 2008-10-31
  • 打赏
  • 举报
回复
如果说:

pObject =(TObject*) pList->List[i] ; // return void *
pObject = (TObject*)pList->Items[i] ; // return void *

是一样的話??

那岂不是 List 和Items 是一样的啦??都是2级指针???
jxw1987628 2008-10-31
  • 打赏
  • 举报
回复




List[0][0]和Items[0]是一样的,List[0][1]和Items[1]是一样的.


有些小错误!

楼主,你看看我的代码中屏蔽的那句,就明白了。
zhgwbzhd 2008-10-31
  • 打赏
  • 举报
回复
是不是可以如此?

List属性 是一个二级指针,指向 Items 数组的开始。
Items属性可以理解成数组,利用Items[0]、Items[1]、等等可以访问里面的值。


也就是说

有一个KK,指向某对象的指针

LS->Add(KK);//也就是说把KK插入到Items数组末尾,假设是8

Items[8]读出来的就是 KK。

这是我关于Items属性的理解。


List属性是指向Items数组的地址开始。
那么List[0]是指向第一个Items数组的地址开始,List[1]是指向第二个Items数组的地址开始。
List[0][0]和Items[0]是一样的,List[0][1]和Items[1]是一样的.

不知道我理解是不是正确,谢谢各位指点。

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧