理解 Delphi 的类(二) - 初识类的方法
2012-02-01 00:42
281 查看
======================================================
注:本文源代码点此下载
======================================================
对类的解释确实写得不错,通俗易懂,让初学者或对类不太清楚的人来讲很有帮助。
对于你例中所举的两个方法,一个是过程,一个是函数,两个都使用了引用传递,这样两个方法的调用其实就一样了。如第一段代码改成:
//调用过程与函数
procedure tform1.button1click(sender: tobject);
var
i: integer;
begin
i := 6;
myproc(i);{使用过程}
showmessage(inttostr(i)); {12}
i := 6;
myfun(i);{使用函数}
showmessage(inttostr(i)); {12}
end;
end.
两者的调用方法是完全一样的,生成的结果也一样,这就不能区分过程和函数之间的区别了。如果将函数定义部分和实现部分括号内的var去掉,这时候就是传值的了,函数的作用就比较明显。如下:
functionmyfun (x: integer): integer;
function myfun( x: integer): integer;
begin
x := x * 2;
result := x;
end;
这样再用到你的第一个例子,函数和过程的意思就更明确了。
一般情况下,为了保证过程或者函数的独立性,尽量不要使用引用传递,推荐使用值传递,如果该实现部分的调用都用值传递相当于将x定义为实现部分的全局变量了,这对设计健壮的代码是有害的。当然在某些情况下使用引用传递更简捷方便有效,如果没有交叉冲突,未偿不可。
回复 引用
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
注:本文源代码点此下载
======================================================
对类的解释确实写得不错,通俗易懂,让初学者或对类不太清楚的人来讲很有帮助。
对于你例中所举的两个方法,一个是过程,一个是函数,两个都使用了引用传递,这样两个方法的调用其实就一样了。如第一段代码改成:
//调用过程与函数
procedure tform1.button1click(sender: tobject);
var
i: integer;
begin
i := 6;
myproc(i);{使用过程}
showmessage(inttostr(i)); {12}
i := 6;
myfun(i);{使用函数}
showmessage(inttostr(i)); {12}
end;
end.
两者的调用方法是完全一样的,生成的结果也一样,这就不能区分过程和函数之间的区别了。如果将函数定义部分和实现部分括号内的var去掉,这时候就是传值的了,函数的作用就比较明显。如下:
functionmyfun (x: integer): integer;
function myfun( x: integer): integer;
begin
x := x * 2;
result := x;
end;
这样再用到你的第一个例子,函数和过程的意思就更明确了。
一般情况下,为了保证过程或者函数的独立性,尽量不要使用引用传递,推荐使用值传递,如果该实现部分的调用都用值传递相当于将x定义为实现部分的全局变量了,这对设计健壮的代码是有害的。当然在某些情况下使用引用传递更简捷方便有效,如果没有交叉冲突,未偿不可。
回复 引用
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
相关文章推荐
- 理解 Delphi 的类(二) - 初识类的方法
- 理解 Delphi 的类(二) - 初识类的方法
- 在Delphi中调用EXE文件,最简单、最容易理解的方法。
- 理解 Delphi 的类(十) - 深入方法[7] - Result
- 理解 Delphi 的类(十一) - 深入类中的方法[1] - 虚方法与动态方法
- 理解 Delphi 的类(十一) - 深入类中的方法[6] - 类中的方法重载
- 理解 Delphi 的类(十) - 深入方法[8] - 如果忘了返回值
- 理解 Delphi 的类(十一) - 深入类中的方法[5] - 静态方法、类方法、静态类方法
- 理解 Delphi 的类(十一) - 深入类中的方法[13] - 方法的调用约定
- 理解 Delphi 的类(十) - 深入方法[9] - 调用时的括号
- 理解 Delphi 的类(十) - 深入方法[20] - 静态数组参数
- 理解 Delphi 的类(十一) - 深入类中的方法[7] - 关于 inherited
- 理解 Delphi 的类(十一) - 深入类中的方法[12] - 消息方法
- 理解 Delphi 的类(十) - 深入方法[10] - 默认参数
- 理解 Delphi 的类(十一) - 深入类中的方法[8] - 抽象方法与抽象类
- 理解 Delphi 的类(十) - 深入方法[11] - 参数前缀
- 理解 Delphi 的类(十) - 深入方法[24] - 方法是一个指针
- 理解 Delphi 的类(十) - 深入方法[1] - 定义
- 理解 Delphi 的类(十) - 深入方法[12] - implementation 区中的方法
- 理解 Delphi 的类(十) - 深入方法[21] - 开放数组参数