type
myclass=class  //定义一个类
procedure mypro (var x:integer);//创建过程方法
function myfun (var x:integer):integer;//创建函数方法
end;function myclass.myfun(var x:integer):integer;//实例化方法
begin
x:=2;
end;
procedure myclass.mypro(var x:integer);
begin
x:=x+2;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
mycls:myclass;
begin
mycls:=myclass.Create;  //创建对象
i:=6;
mycls.myfun(i);    //调用方法
showmessage(inttostr(i));
mycls.Free;
end;end.
--------------------
i:=6;
mycls.myfun(i);    //调用方法
showmessage(inttostr(i));
上面那个mycls.myfun(i)调用myfun方法 那个i是什么意思?
传值还是?
而且输出的是i不是x 但是为什么结果是x的值

解决方案 »

  1.   

    var传址
    你把i传址给myfun了。所以改了i的值。就像你给搬家公司你家地址了,让他们进入你们家搬东西。而不是你另买一份你的家当然后搬到新家里去。
    x代表传进去的那个i,你可以把那个x改成任何合法的名字,比如i,ii,jjjj。这个我实在不知道怎么解释了,只能意会了你发一分的帖子是什么意思?我回这个帖子不是为了这一分。大家如果回复你也不是为了这一分。
    你还不如发零分贴。然后说你没分了。大家能理解你。
    你这个一分,在我看来相当不尊重想给你解惑的人。就好像说,来啊来啊,给我解决这个问题,我赏你一分钱哦。还不快点?
    你出分,别人回答问题,别人虽然得到分了。但不意味着你高高在上,也不是别人得感谢你给他分了。
    有这个专家分,只是对别人劳动的一种肯定,而不是施舍。