Delphi 中的引用 (2008-07-25 11:04:32)
Delphi?中的引用? (2008-07-25 11:04:32)
? 1.在interface部分,使用uses,是公有引用,本单元中在interface和implementation中,都可以使用引用到的单元。 2.在implementation部分使用uses,是私有引用,被引用到的单元只能在implementation中使用。 ? 在interface部分的uses,如果不小心,有可能会造成循环引用,这在各种语言中都有可能会碰到,VC++ 中的情况和解决办法,我写在另一篇文章《include头文件的陷阱》中http://blog.sina.com.cn/s/blog_4dbbf76f01000904.html ? 同样在delphi中避免循环引用的方法是:如果只在inplementation中使用到,那我们就只在inplementation中uses,因为是私有引用,被引用到的单元在引用本单元的其他单元中不可见,就避免了循环引用的问题。 不过也正因为是私有引用,我们要注意一个细节问题,举例来说: ? A.pas 文件中我们定义了Afunc函数,B.pas文件中我们定义了Bfunc函数,此时,我们在C单元中,在interface部分引用A单元,在implementation部分引用B单元,那么在C单元中,Afunc和Bfunc两个函数我们都能使用。但是,当我们在D单元中引用C单元后,因为A在C中是公有引用,故我们在D中也能使用,但B在C中是私有引用,我们在D中就不能使用了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |