网站大量收购闲置独家精品文档,联系QQ:2885784924

Ada子单元和私有子单元.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ada子单元和私有子单元

Ada⼦单元和私有⼦单元 在⼀个⽐较⼤的软件系统开发中,往往会出现某个程序包变得很⼤这种情况。 于 需要这些新添功能的⽤户来说,这是好事;⽽ 于其它⽤户来说,却要花费更多的时 间编译更⼤的程序包,⽆疑很让⼈不舒服。在这种情况下,就有了⼦单元这种处理⽅ 法:将逻辑上单⼀的程序包分割成⼏个实际上独⽴的程序包,⼦单元从逻辑上讲是源 程序包的扩展,但却以独⽴的⽂件形式存在,如将上例分割: 000 -- filename:account.ads 001 package Accounts is 002 type account is private; 003 My_Account : constant account; 00 procedure withdraw(account:in out account; amount :in Posi 005 procedure deposit (account:in out account; amount :in Posi 006 function balance(account: in out account) return Integer; 007 private 008 type account is 009 record 010 account_id : positive; 011 balance : integer; 012 end record; 013 My_Account:constant account := (78781, 122); 01 end accounts; 000 --filename:accounts_more_stuff.ads 001 package accounts.more_stuff is 002 function create(account:in out account;account_id :Positiv 003 function cancel(account:in out account;account_id :Positiv 00 end accounts.more_stuff; 程序包 accounts.more_stuff 是accounts的⼦程序包。这个例⼦的实际效果与上例⼀ 样,包括作⽤域等等,只是从形式上来说分成了两个不同程序包,编译时也是分别编 译。 于⽤户来讲,使⽤上的区别还是有⼀点: with accounts.more_stuff; procedure test is ... begin ... accounts.more_stuff.create (his_account,7827); accounts.deposit(his_account,7000); ... end test; 上⾯虽然只 with 了accounts.more_stuff ,但能使⽤accounts⾥的资源,默认情况下已 作了 with accounts 的⼯作,如果 accounts 还有其它⼦单元,则不会⾃动 with 那些⼦单 元。 use 和 with 不⼀样,它不会在 use accounts.more_stuff 时默认也 use accounts : with accounts.more_stuff; use accounts; use more_stuff; procedure test is ... begin create (his_account,7827); deposit(his_account,7000); ... end test; ⼦单元的使⽤应该说还是和原来差不多。另外注意⼀下,程序使⽤程序包时会将程 序包内的所有⼦程序都载⼊内存,因此有内存浪费现象;如果⼀个程序包内⼀部份资 源使⽤频率较⾼,另⼀部份资源较少使⽤,则可以将这两部份资源分成两个⼦单元, 以提⾼效率,这⽅⾯的典型情况就是程序包 Characters.Latin_ 1,Characters.Handling , 具体见 第13章。 私有⼦单元 私有⼦单元允许创建的⼦单元只能被源程序包所使⽤,如: 000 --filename:accounts_more_stuff.ads 001 private

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档