Ada:规范的公共和私有部分分开了吗?

wol*_*969 2 ada

我了解到Ada规范文件(*.ads)中有公共部分和私有部分,只有公共部分应该考虑编译单元的用户(通常是包).

实际上,在不同的文件中将规范的公共部分和私有部分分开是不常见的?

因此,最后,这样的包的用户知道规范层上的包的内部但不能使用它.我在这儿吗?

感谢和欢呼,沃尔夫冈

Jac*_*sen 7

不,Ada不允许您将包规范的公共和私有部分分开.

最初的Ada首席设计师Jean Ichbiah在一种语言上做了一些工作,这种语言实际上将公共,私有(数据结构)和实现部分分开,但这并没有成为Ada的一部分.

也:

  • 子包的私有部分和主体可以看到其父包的私有部分.
  • 私有子包的规范可以看到其父包的私有部分.

...所以你不能总是完全忽略包规范的私有部分.

一个实际的例子:

当我编写单元测试时,我喜欢将测试套件放在我正在测试的软件包的子包中.这样我的测试用例不仅限于检查包中声明的类型的公共视图.