我不知道怎么做链表[:(]求助 ( 积分: 100 )

  • 主题发起人 主题发起人 yancaoshi
  • 开始时间 开始时间
Y

yancaoshi

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做的一个链表,不过每个节点用的不是记录,而是类,里面需要实现一些自己的方法。我在连接的时候发现不知道怎么做了。
下面是我定义的类:
type
TTest = class
name: string;
value: integer;
{…………这里是我的一些方法…………}
end;
PTest = ^TTest;

在过程中我是这样的:
var
P: PTest;
begin
New(P);
P^.name := 'first';//这句错了
{…………想做的其它事…………}
end;
我New出一块空间用于保存我想要的数据,然后想进行操作就出错了。如果用record而不用class的话就没问题。我知道class需要创建,但是我这个子过程中用TTest.Create创建的话怎么把此空间里的数据保存到我New出来的地方呢?
写得糊涂了,我是不是绕进去了?谢谢大家回复啦
 
我想做的一个链表,不过每个节点用的不是记录,而是类,里面需要实现一些自己的方法。我在连接的时候发现不知道怎么做了。
下面是我定义的类:
type
TTest = class
name: string;
value: integer;
{…………这里是我的一些方法…………}
end;
PTest = ^TTest;

在过程中我是这样的:
var
P: PTest;
begin
New(P);
P^.name := 'first';//这句错了
{…………想做的其它事…………}
end;
我New出一块空间用于保存我想要的数据,然后想进行操作就出错了。如果用record而不用class的话就没问题。我知道class需要创建,但是我这个子过程中用TTest.Create创建的话怎么把此空间里的数据保存到我New出来的地方呢?
写得糊涂了,我是不是绕进去了?谢谢大家回复啦
 
给个链表结构的例子,看看对你又没有帮助:
//声明
type TLink=^student
//先定义指针类型
student=record //再声明student
Num:string;
S:integer;
next:TLink //指向下一个
end;
Var p:TLink
//p就是个student的链表
 
var
P: PTest;
begin
New(P);
p^:=TTest.Create
// 创建类对象这样写就可以了
P^.name := 'first';
 
链表是用在结构上的,用record,如果要用类就用TList做链表的容器
TList.Add(你Create出来的东西)
 
多谢SparkV,的确是我要的答案。
也感谢chenybin和木桩,不过我用record做出来了。
 
后退
顶部