请问delphi中变量声明的问题

unitUnit1;interfaceusestypeTForm1=class(TForm)privatea:Integer;//#1publica:Integer;//... unit Unit1;
interface
uses
type
TForm1=class(TForm)
private
a:Integer;//#1
public
a:Integer;//#2
end;
var
Form1:TForm1;
a:Integer;//#3
implementation
var
a:Integer;//#4

我想问一下在#1234定义的a有什么区别吗?
(1)都是全局变量吗?
(2)是实例变量还是类变量
(3)#34的变量时什么类型的,private还是public?
(4)我要想定义类变量怎么定义?
展开
 我来答
股票2进制
2011-03-24
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
//#1 ,//#2的定义是类定义,该变量随着对象TForm1实例(创建)而存在,如果TForm1的实例释放,也跟着释放
而就引用范围来讲,#1,#2都可以在本单元中以TForm1的实例方式或者TForm1的方法中进行访问,
而在本单元以外,可以用以TForm1的实例方式进行访问//#2,而//#1不能访问

//#3为全局变量,该变量在编译时就固定了地址,他占用的空间会在Exe被装入时由Windows(或其他操作系统)初始化,他的地址是唯一的,对他的访问编译时会以程序内的绝对地址来寻址
而要访问 //#3,只需要引用该单元即可访问

//#4 是单元内全局变量,和#3唯一不同的就是其他单元不能访问
sea0230
2011-03-24 · TA获得超过104个赞
知道答主
回答量:100
采纳率:0%
帮助的人:57.3万
展开全部
都是全局,只是访问权限有所区别
#1定义的是属于窗体Form类的私有变量,只能在类内部访问
#2定义的是属于窗体Form类的公有变量,其它的类也可以访问。
#3定义的是一个全局变量,它和Form窗体类同级,可以在其它的单元访问
#4定义的是窗体的全局变量,在窗体单元的任何过程和方法都可以访问
以上是我个人的理解,希望对你有所帮助
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知道凸凹
2011-03-24 · 超过30用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:34.1万
展开全部
#1 是类变量,只能在类内访问,而且是私有的,不能通过实例访问。
#2 也是类变量,公开的,能通过类实例访问。如form1.a
注:#1和#2不能同时定义为同名
#3 是全局变量,是在单元接口部分定义的,能在其他引用该单元的地方访问。
#4 是单元全局变量,是在单元的实现部队定义的,只能在该单元内访问。
3,4也不能同名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huasoft111
2011-03-24
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
#1是私有变量
#2#3是公共变量
#4是全局变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式